我真的不明白日志级别的含义。
在Lumbejack中定义了以下日志级别:
#define LOG_LEVEL_OFF DDLogLevelOff
#define LOG_LEVEL_ERROR DDLogLevelError
#define LOG_LEVEL_WARN DDLogLevelWarning
#define LOG_LEVEL_INFO DDLogLevelInfo
#define LOG_LEVEL_DEBUG DDLogLevelDebug
#define LOG_LEVEL_VERBOSE DDLogLevelVerbose
#define LOG_LEVEL_ALL DDLogLevelAll
其中一些是什么意思?以及如何使用它们? 那些与CocoaLumberjack相关的是否都适用于iOS?
另外,我在pch文件中使用以下代码:
#ifdef DEBUG
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
#else
static const int ddLogLevel = LOG_LEVEL_ERROR;
#endif
那是什么意思?我在项目中搜索了ddLogLevel
var,但我没有发现它在任何地方使用过。而且,不是在伐木工人吊舱里。
答案 0 :(得分:2)
设置ddLogLevel
过滤器从各种DDLogXXX
方法中显示哪些消息。
如果您将ddLogLevel
设置为LOG_LEVEL_ALL
,则会记录所有DDLogXXX
方法。如果您将ddLogLevel
设置为LOG_LEVEL_INFO
,则只会记录Info
,Warning
和Error
。
只需查看您显示的#define
行列表即可。选择给定值只会导致来自该级别的消息以及列表中较高的消息。
如果您将ddLogLevel
设置为LOG_LEVEL_INFO
并且您有以下两行:
DDLogInfo("some info message");
DDLogDebug("some debug message");
然后只会记录第一条消息,因为Debug
低于Info
。
每个级别的实际含义都有些主观。只需在您的应用中使用它们。最重要或最关键的消息应该具有最高级别,而最不重要的消息应该具有较低级别。
当我的应用遇到意外值或提供DDLogError
参数的方法失败时,我使用NSError
。我记录了相关消息并包含NSError
值。
我使用DDLogInfo
代替“我在这里”类型的消息。
我使用DDLogDebug
记录变量值。
我不经常使用DDLogWarn
,但您可以将其用于没有实际错误但需要注意的重要事项的意外问题。
答案 1 :(得分:2)
这些是不同程度的日志记录粒度。 LOG_LEVEL_ALL表示任何和每个日志都将写入lumberjack使用的控制台和文件。 LOG_LEVEL_OFF是没有记录的极端的另一端。您可以使用它们来确定要为哪个构建显示哪种日志。以下是一些用例示例。
- (void)viewDidLoad
{
[super viewDidLoad];
// this log isn't particularly useful for a production build,
// but can be helpful when debugging. So we use verbose.
DDLogVerbose(@"This view controller loaded");
}
- (void)didRecieveMemoryWarning
{
// This is a bad situation, but it isn't an error really.
// Just a signal that we need to free up memory. So we use warning.
DDLogWarning(@"We are using too much memory.");
}
- (void)doSomething
{
NSError *error;
[self doSomethingElse:&error];
if (error) {
// This is definitely an error we need to handle. If you have to
// look through crash logs on a production build, you definitely
// want this log to show up there.
DDLogError(@"Encountered an error: %@", error);
}
}
在这些示例中,当您从Xcode运行应用程序时,所有日志都会显示,但只有错误日志会显示在生产崩溃日志中。 ddLogLevel
常量是您确定所需日志记录级别的方式。