CocoaLumberjack增强异步日志组件BITCocoaLumberjack的使用

使用我自己做的异步日志公有库:BITCocoaLumberjack; BITCocoaLumberjack基于CocoaLumberjack 3.4.2版本进行增强,打印文件名,函数名,日志所在文件的行数;测试加入GCD的MainDispatchQueue队列线程在后台仍旧可以运行。
BITCocoaLumberjack的使用demo
1.增加文件:PrefixHeader.h
在这里插入图片描述
2.增加Podfile文件

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'
use_frameworks!
inhibit_all_warnings!


target 'UseBITCocoaLumberjack' do

  #自定义组件
  pod 'BITCocoaLumberjack'

end

3.打开终端命令行,切换到Podfile文件所在目录下执行:pod update --verbose --no-repo-update下载BITCocoaLumberjack组件。

4.在PrefixHeader.h文件中增加如下代码:

#ifndef PrefixHeader_h
#define PrefixHeader_h

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

//异步日志处理和测试环境,现网环境切换宏
#ifndef TEST_XCODE_COLORS
//当发布正式服务器时需要置为0,就能关闭日志系统
#define TEST_XCODE_COLORS 1
#else
#endif

#if TEST_XCODE_COLORS
#import <BITCocoaLumberjack/CocoaLumberjack.h>
#import <BITCocoaLumberjack/CocoaLumberjackMacro.h>
static const int ddLogLevel = DDLogLevelVerbose;
#define NSLog(...) NSLog(__VA_ARGS__)
#else
#import <BITCocoaLumberjack/CocoaLumberjackNoLogsMacro.h>
#define NSLog(...)
#endif

#endif /* PrefixHeader_h */

5.在AppDelegate.m文件修改增加如下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    [self configDDLog];
    return YES;
}


- (void)configDDLog {
#if TEST_XCODE_COLORS
    [DDLog addLogger:[DDTTYLogger sharedInstance]];
    [DDLog addLogger:[DDASLLogger sharedInstance]];
    [[DDTTYLogger sharedInstance] setColorsEnabled:YES];
    
    DDFileLogger *fileLogger = [[DDFileLogger alloc] init];
    fileLogger.rollingFrequency = 60 * 60 * 24 * 3; // 24 hour rolling
    fileLogger.logFileManager.maximumNumberOfLogFiles = 100;
    fileLogger.logFileManager.logFilesDiskQuota = 10 * 1024 * 1024;//20 * 1024 * 1024; // 20 MB
    
    [DDLog addLogger:fileLogger];
    
#if TARGET_OS_IPHONE
    UIColor *pink = [UIColor colorWithRed:(255/255.0) green:(58/255.0) blue:(159/255.0) alpha:1.0];
#else
    NSColor *pink = [NSColor colorWithCalibratedRed:(255/255.0) green:(58/255.0) blue:(159/255.0) alpha:1.0];
#endif
    [[DDTTYLogger sharedInstance] setForegroundColor:pink backgroundColor:nil forFlag:DDLogFlagInfo];
#if TARGET_OS_IPHONE
    UIColor *gray = [UIColor grayColor];
#else
    NSColor *gray = [NSColor grayColor];
#endif
    //注意:新版本的CocoaLumberjack的下面日志级别要设置为DDLogFlagVerbose,若设置为DDLogFlagInfo,那么DDLogFlagVerbose级别的日志不写入日志文件
    [[DDTTYLogger sharedInstance] setForegroundColor:pink backgroundColor:nil forFlag:DDLogFlagVerbose];
    
    FLDDLogError(@"TEST DDLogError");
    FLDDLogWarn(@"TEST DDLogWarn");
    FLDDLogInfo(@"TEST DDLogInfo)");
    FLDDLogDebug(@"TEST DDLogDebug");
    FLDDLogVerbose(@"TEST DDLogVerbose");
#endif
    
}

6.在其它页面你想打印的日志地方打印日志,示例如下:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [self test];
}

//测试加入GCD的MainDispatchQueue队列里的线程在后台仍旧可以运行三分钟
-(void)test
{
    FLDDLogDebug(@"测试加入GCD的MainDispatchQueue队列线程在后台仍旧可以运行");
    dispatch_async(dispatch_get_main_queue(), ^{
        for(NSInteger i = 0; ; i++)
        {
            sleep(1);
            FLDDLogDebug(@"test:%ld", (long)i);
        }
    });
}

7.在Info.plist增加一行Application supports iTunes file sharing为YES。
当然测试版本设置为YES,正式版本把它设置为NO,关闭日志功能。当然你可以继续打印日志,只是提高它的打印级别。可以上传日志到苹果日志系统。

DDLog(整个框架的基础)
DDASLLogger(发送日志语句到苹果的日志系统,以便它们显示在Console.app上)
DDTTYLoyger(发送日志语句到Xcode控制台,如果可用)
DDFIleLoger(把日志语句发送至文件)
//使用如下:
[DDLog addLogger:[DDASLLogger sharedInstance]]; 
[DDLog addLogger:[DDASLLogger sharedInstance]];
[DDLog addLogger:[DDTTYLogger sharedInstance]]; 或[[DDTTYLogger sharedInstance] setColorsEnabled:YES];

在这里插入图片描述
注意:新版本的CocoaLumberjack的下面日志级别要设置为DDLogFlagVerbose,若设置为DDLogFlagInfo,那么DDLogFlagVerbose级别的日志不写入日志文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值