首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CocoaLumberjack日志级

CocoaLumberjack日志级
EN

Stack Overflow用户
提问于 2016-11-11 21:16:34
回答 2查看 1.1K关注 0票数 0

我不太明白日志级别是什么意思。

在Lumbejack中,定义了以下日志级别:

代码语言:javascript
运行
复制
#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文件中使用了以下代码:

代码语言:javascript
运行
复制
#ifdef DEBUG
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
#else
static const int ddLogLevel = LOG_LEVEL_ERROR;
#endif

这是什么意思?我在这个项目中搜索了ddLogLevel var,但没有发现它在任何地方都使用过。还有,不是在木料桶里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-11 21:27:29

设置ddLogLevel筛选从各种DDLogXXX方法中显示的消息。

如果将ddLogLevel设置为LOG_LEVEL_ALL,则将记录所有DDLogXXX方法。如果将ddLogLevel设置为LOG_LEVEL_INFO,则只记录InfoWarningError

只需查看所显示的#define行列表即可。选择给定的值只会产生来自该级别和列表中较高级别的消息。

如果将ddLogLevel设置为LOG_LEVEL_INFO,并且有以下两行:

代码语言:javascript
运行
复制
DDLogInfo("some info message");
DDLogDebug("some debug message");

然后只会记录第一条消息,因为Debug低于Info

每个层次的实际意义都是主观的。只要在你的应用程序中始终如一地使用它们。最重要或最关键的信息应具有最高级别,最不重要的信息应具有较低级别。

当应用程序遇到意外值或提供NSError参数的方法失败时,我使用NSError。我记录了一个相关的消息并包含了NSError值。

我使用DDLogInfo来输入消息。

我使用DDLogDebug记录变量值。

我不太经常使用DDLogWarn,但是您可以在没有实际错误但需要注意的一些重要问题上使用它。

票数 2
EN

Stack Overflow用户

发布于 2016-11-11 21:27:47

这些都是不同程度的日志粒度。LOG_LEVEL_ALL意味着所有日志都将被写入到伐木工使用的控制台和文件中。LOG_LEVEL_OFF是不发生日志记录的极端的另一端。您可以使用这些来确定要显示哪个版本的日志类型。下面是一些用例示例。

代码语言:javascript
运行
复制
- (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常量是确定您想要的日志记录级别的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40556341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档