Я использую CocoaLumberjack logging framework 2.0.0 для регистрации на разных уровнях. В моей Prefix.pch (я знаю, что этот файл является устаревшим, но он должен работать, тем не менее) я включаю Cocoalumberjack и установить глобальный уровень журнала, как предложил here:CocoaLumberjack's Log Level переключается на подробный
#ifdef DEBUG
static const DDLogLevel ddLogLevel = DDLogLevelDebug;
#else
static const DDLogLevel ddLogLevel = DDLogLevelWarn;
#endif
У меня есть DDLogVerbose
заявления на несколько методов, который не должен регистрироваться по умолчанию. Проблема: Тем не менее, они являются получения журнала.
Осмотр ddLogLevel
в функции init показывает 00001111, что равно DDLogLevelDebug
. Тем не менее, выполняется подробное ведение журнала событий после этого. (1)
Предварительная обработка линии DDLogVerbose(@"I AM VERBOSE")
показывает этот код:
do {
if(DDLogLevelVerbose & DDLogFlagVerbose)
[DDLog log : __objc_yes
level : DDLogLevelVerbose
flag : DDLogFlagVerbose
context : 0
file : "....m"
function : __PRETTY_FUNCTION__
line : 59
tag : ((void *)0)
format : (@"I AM VERBOSE")];
} while(0);
, что означает, что после того, как LogLevel предварительной обработки является Многословный. (2) я узнал, что этот уровень по умолчанию в CocoaLumberjack в случае не определяются не уровень регистрации:
#ifndef LOG_LEVEL_DEF
#ifdef ddLogLevel
#define LOG_LEVEL_DEF ddLogLevel
#else
#define LOG_LEVEL_DEF DDLogLevelVerbose
#endif
#endif
Но: Отладочным это показывает, что первый путь выполняется, т.е. LOG_LEVEL_DEF
(который проверяется от уровня оператора, чтобы определить, должен ли он быть зарегистрирован или нет) назначается правильный уровень (отладка).
Вопрос: я не обнаружил, почему (1) показывает LogLevel Debug и, после предварительной обработки, он перешел на Многословный(2). Это может быть вопрос о том, в какие заголовки включены? Или мне не хватает какого-то важного момента?
Вы когда-нибудь решали это? У меня такая же проблема. –
@ zoë К сожалению, нет, я вернулся к обычной старой регистрации, см. Мой ответ ниже. –