Lumberjack日志DDLogInfo在控制台中显示为WARNING

时间:2014-03-09 20:10:58

标签: ios cocoa logging console lumberjack

我使用Lumberjack作为我的日志框架。

我有这个定义......

#ifdef DEBUG
static const int ddLogLevel = LOG_LEVEL_DEBUG;
#else
static const int ddLogLevel = LOG_LEVEL_WARN;
#endif

这是我的日志声明......

DDLogInfo(@"Starting");

然而,当我查看Console.app时,它将此消息显示为WARNING,而不是像ASL所示的INFO。还有其他我需要做的事吗?

这允许在不处于DEBUG模式时不记录该语句,因此该语句与广告一样有效。

1 个答案:

答案 0 :(得分:1)

这是预期的行为。 DDASLLogger将Debug映射到ASL的警告级别,Info to Error等。 这是因为默认情况下,ASL会过滤通知级别及以上。

(如果DDLogInfo打印出警告,那么您使用的是旧版本的CocoaLumberjack)

Apple System Log documentation说:

  

默认过滤器掩码为ASL_FILTER_MASK_UPTO(ASL_LEVEL_NOTICE)。   这意味着默认情况下,并且没有远程控制更改   (如下所述),ASL_LEVEL_DEBUG和ASL_LEVEL_INFO优先级消息   不会发送到服务器。

您可以尝试编写自己的自定义ASL记录器 但我建议你将自定义格式化程序添加到ASL记录器中,它将添加实际的日志级别(更快的接近)。