使用CocoaLumberjack自定义打印Log的步骤

 第一:下载并安装XcodeColors


 第二:引入第三方库CocoaLumberjack(可以从CocoaPods中安装,但是记得不要下载成swift用的)


第三:点击Edit Scheme,在run中的Environment variables 中增加Name:XcodeColors,并设置Value:YES


第四:在pch文件中增加包含 #import “CocoaLumberjack.h”和定义日志级别。(当然也可以在这个框架的基础上,自定义自己的HXLog.h,然后将HXLog.h加到pch中),这里给了我自定义的打印头文件,HXLog.h

#ifndef HXLog_h

#define HXLog_h

#import "CocoaLumberjack.h"

/* -------------------------------------------------------------- */

日志的级别有如下几种:

LOG_LEVEL_ERROR  :  如果设置为LOG_LEVEL_ERROR, 仅仅能看到Error相关的日志输出。

LOG_LEVEL_WARN    :  如果设置为LOG_LEVEL_WARN,  能看到Error、Warn相关的日志输出。

LOG_LEVEL_INFO    :  如果设置为LOG_LEVEL_INFO,  能够看到Error、Warn、Info相关的日志输出。

LOG_LEVEL_DEBUG  :  如果设置为LOG_LEVEL_DEBUG, 能够看到Error/Warn/Info/Debug相关的日志输出。

LOG_LEVEL_VERBOSE :  如果设置为LOG_FLAG_VERBOSE,能够看到所有级别的日志输出。

LOG_LEVEL_OFF    :  不输出日志。

/* -------------------------------------------------------------- */

#ifdef DEBUG    // 调试阶段,打印所有日志

static const int ddLogLevel = DDLogLevelVerbose;

//static const int ddLogLevel = DDLogLevelDebug;

//static const int ddLogLevel = DDLogLevelError;

//static const int ddLogLevel = DDLogLevelInfo;

//static const int ddLogLevel = DDLogLevelWarning;

#else            // 发布阶段,不打印日志

static const int ddLogLevel = DDLogLevelOff;

#endif

// 注意: 如果不需要自定义打印,可以直接将上面的设置放入pch中即可

#define HXLogVerbose(fmt, ...)    DDLogVerbose((@"[%@][%d] " fmt),[[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, ##__VA_ARGS__)

#define HXLogInfo(fmt, ...)      DDLogInfo((@"[%@][%d] " fmt),[[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, ##__VA_ARGS__)

#define HXLogDebug(fmt, ...)      DDLogDebug((@"[%@][%d] " fmt),[[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, ##__VA_ARGS__)

#define HXLogWarn(fmt, ...)      DDLogWarn((@"[%@][%d] " fmt),[[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, ##__VA_ARGS__)

#define HXLogError(fmt, ...)      DDLogError((@"[%@][%d] " fmt),[[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, ##__VA_ARGS__)

// 打印方法名

#define HXLogFunc HXLogInfo(@"%s", __func__);

#endif 


第五:在AppDelegate.m的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中调用自定义的如下方法:

#pragma mark - 设置DDLog

- (void)setUpLog {

// CocoaLumberjack开启颜色分级

[DDTTYLogger sharedInstance].colorsEnabled = YES;

[DDLog addLogger:[DDTTYLogger sharedInstance]];

[[DDTTYLogger sharedInstance] setForegroundColor:[UIColor blueColor] backgroundColor:nil forFlag:DDLogFlagInfo];//设置INFO级别的日志的颜色为橙色

}

注意:还有很多设置可以自由发挥

推荐阅读更多精彩内容