Во-первых, можете ли вы обновить свой вопрос, чтобы показать, какие вызовы DDLog* вы используете? Это может помочь подтвердить, что вы используете что-то, что действительно регистрируется (или нет) правильно.
Во-вторых, некоторые из ваших примеров журналов, показывающие вызовы в режиме выпуска, также могут помочь, особенно показывая, из каких экземпляров класса они исходят.
Итак, вы только используете DDLog в GeneratrTableViewController.m
? То, что у вас есть, установит статическую константную переменную ddLogLevel только в GeneratrTableViewController.m
. (Я предполагаю, что это то, на что я смотрю, основываясь на том, как выглядит код.) Если вы используете вызовы DDLog* в любых других файлах, он будет использовать любой уровень журнала по умолчанию.
ОБНОВЛЕНИЕ
Хорошо, ваше обновление помогло мне понять, где вы были. Вы не должны настраивать его таким образом для каждого класса.
Во-первых, сделайте это глобально, добавьте что-то вроде следующего один раз в предварительно скомпилированный заголовок - не каждый файл, не всегда заголовок -
#ifdef DEBUG
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
static int ddLogLevel = LOG_LEVEL_DEBUG;
#pragma clang diagnostic pop
#else
static const int ddLogLevel = LOG_LEVEL_WARN;
#endif
#pragma не предупреждать о неиспользуемых переменных маскирует предупреждения, возникающие в крайнем случае, когда вы находитесь в режиме DEBUG, но переменная не используется из-за отсутствия ведения журнала. Неконстантность в режиме отладки здесь важна — если вы хотите переопределить уровень для каждого класса, вам нужно будет иметь возможность его изменить. Но это должно происходить динамически.
Для каждого класса, в котором вы можете переопределить параметр ведения журнала, вам потребуется что-то вроде следующего (и по-прежнему добавляйте указанное выше в предварительно скомпилированный заголовок).
+ (void)initialize
{
[self ddSetLogLevel:LOG_LEVEL_VERBOSE];
}
+ (int)ddLogLevel
{
return LOG_LEVEL_VERBOSE;
}
+ (void)ddSetLogLevel:(int)logLevel
{
ddLogLevel = logLevel;
}
Я стараюсь держать свой глобальный уровень на уровне DEBUG (в режиме DEBUG). Затем я добавляю приведенный выше код в классы, когда активно их разрабатываю, и активно использую DDLogVerbose. Затем, когда основная разработка завершена, я оборачиваю ее в #if 0/#endif
, чтобы я мог легко добавить ее позже; изменение глобальной настройки также будет работать нормально.
person
greymouser
schedule
19.04.2014
()
рядом с объявлением интерфейса... - person Michael   schedule 19.04.2014