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

CocoaLumberjack的全局日志级别
EN

Stack Overflow用户
提问于 2011-02-25 21:56:48
回答 11查看 16.7K关注 0票数 36

我在一个iPhone项目中使用CocoaLumberjack来记录一些信息。

我关注了the Getting started guide,一切正常,但有一件事困扰着我:似乎没有一种优雅的方法来定义整个应用程序的日志级别。为了让它工作,我需要在每个源文件中定义一个常量,如下所示:

代码语言:javascript
运行
复制
static const int ddLogLevel = LOG_LEVEL_VERBOSE;

那么,有没有办法定义应用程序的全局日志级别呢?

我在这个主题上找到了this article,但我仍然需要在每个文件中添加一个#import ...

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-03-07 18:52:33

我没有找到比我在问题中提到的在the article中解释的更好的方法。

Constant.h

代码语言:javascript
运行
复制
extern int const ddLogLevel;

Constant.m

代码语言:javascript
运行
复制
#import "Constants.h"
#import "DDLog.h"

int const ddLogLevel = LOG_LEVEL_VERBOSE;

记录器配置

代码语言:javascript
运行
复制
#import "DDLog.h"
#import "DDASLLogger.h"
#import "DDTTYLogger.h"
#import "DDFileLogger.h"

...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

 [DDLog addLogger:[DDASLLogger sharedInstance]];
 [DDLog addLogger:[DDTTYLogger sharedInstance]];

 DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; 
 [DDLog addLogger:fileLogger];
 [fileLogger release];

...

导入您的类

代码语言:javascript
运行
复制
#import "DDLog.h"
#import "Constants.h"

...

- (void)someMethod {
 DDLogVerbose(@"Log this message");
}
票数 18
EN

Stack Overflow用户

发布于 2011-03-01 22:16:01

您可以在*.pch文件中使用#include语句,这样它就会自动包含在所有项目文件中。

票数 21
EN

Stack Overflow用户

发布于 2014-11-13 19:59:19

请不要使用前缀标题。

您不需要现在不推荐使用的.pch文件,只需在需要的地方包含一个头文件即可。

Logger.h - CocoaLumberjack 1.9.x

代码语言:javascript
运行
复制
#ifndef Project_Logger_h
#define Project_Logger_h

#if defined(__OBJC__)

#import <CocoaLumberjack/DDLog.h>
extern int ddLogLevel;

#endif

#endif

Logger.m

代码语言:javascript
运行
复制
#import "Logger.h"

int ddLogLevel = LOG_LEVEL_VERBOSE;

对CocoaLumberjack 2.x的更改

代码语言:javascript
运行
复制
#import <CocoaLumberjack/CocoaLumberjack.h>

int ddLogLevel = DDLogLevelVerbose;

如果在2.0版本发布后语法发生了变化,请评论或编辑。

AppDelegate中的用法示例

代码语言:javascript
运行
复制
#import "AppDelegate.h"

#import "Logger.h"

#import <CocoaLumberjack/DDFileLogger.h>
#import <CocoaLumberjack/DDASLLogger.h>
#import <CocoaLumberjack/DDTTYLogger.h>



@interface AppDelegate ()
@property (strong, nonatomic) DDFileLogger *fileLogger;
@end



@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [DDLog addLogger:[DDASLLogger sharedInstance]];
    [DDLog addLogger:[DDTTYLogger sharedInstance]];

    DDFileLogger *fileLogger = [[DDFileLogger alloc] init];
    fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7;

    [DDLog addLogger:fileLogger];
    self.fileLogger = fileLogger;

    DDLogDebug(@"%s", __PRETTY_FUNCTION__);

    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
    DDLogDebug(@"%s", __PRETTY_FUNCTION__);
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    DDLogDebug(@"%s", __PRETTY_FUNCTION__);
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    DDLogDebug(@"%s", __PRETTY_FUNCTION__);
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    DDLogDebug(@"%s", __PRETTY_FUNCTION__);
}

- (void)applicationWillTerminate:(UIApplication *)application
{
    DDLogDebug(@"%s", __PRETTY_FUNCTION__);
}
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5118053

复制
相关文章

相似问题

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