xcode 运用CocoaLumberjack和XcodeColors配置分级打印

xcode的控制台Log信息没有分级,在打印信息比较多时,无法很快的找出需要的信息;还有就是在项目上线时候要关闭掉工程里的所有打印信息,这样就需要对xcode的打印信息进行符合个人习惯的自定义.这里介绍一下运用第三方库 CocoaLumberjack和xcode插件XcodeColors来配置分级打印.至于为什么要使用CocoaLumberjack呢?因为这个第三库提供了一些比较强大的日志功能,我会在以后的文章中详细介绍,而使用XcodeColors插件,可以让xcode的控制台打印带有颜色,这样更容易找出需要的信息,从而提高工作效率,避免加班.


1.下载第三方库CocoaLumberjack 链接:https://github.com/CocoaLumberjack/CocoaLumberjack
新建工程,加入CocoaLumberjack第三方库;



2.配置信息:在pch中引入头文件

#import "CocoaLumberjack.h"

pch中添加代码

static const NSUInteger ddLogLevel = DDLogLevelAll;//多个宏可供选择

[AppDelegate application:didFinishLaunchingWithOptions:]方法中添加代码:
//发送日志语句到苹果的日志系统

 [DDLogaddLogger:[DDASLLoggersharedInstance]];

//发送日志语句到Xcode控制台

   [DDLogaddLogger:[DDTTYLoggersharedInstance]];

    

   // Enable Colors  使用带颜色的打印

    [[DDTTYLoggersharedInstance]setColorsEnabled:YES];

//自定义打印颜色

    [[DDTTYLoggersharedInstance]setForegroundColor:[UIColorblueColor]backgroundColor:[UIColorgreenColor]forFlag:DDLogFlagVerbose];

    [[DDTTYLoggersharedInstance]setForegroundColor:[UIColorwhiteColor]backgroundColor:[UIColorpurpleColor]forFlag:DDLogFlagInfo];


/**

     把日志语句发送至文件 默认路径为Library/Caches/Logs

获取文件路径

 

NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectoryNSUserDomainMaskYESobjectAtIndex:0];

 NSString * logPath = [docPath stringByAppendingPathComponent:@"Caches"];

 logPath = [logPath stringByAppendingPathComponent:@"Logs"];


*/

   DDFileLogger *fileLogger = [[DDFileLoggeralloc] init];

//设置保存一个星期

    fileLogger.rollingFrequency =60 * 60 *24; // 24 hour rolling;

    fileLogger.logFileManager.maximumNumberOfLogFiles = 7;

    [DDLogaddLogger:fileLogger];





3.完成如上步骤 使用

 DDLogError(<#frmt, ...#>)  错误

   DDLogInfo(<#frmt, ...#>) 警告

   DDLogInfo(<#frmt, ...#>) 提示

   DDLogVerbose(<#frmt, ...#>) 详细信息

就会执行打印,但是这事打印是没有颜色的.需要安装XcodeColors插件来配合使用.成功安装之后如果打印还是没有颜色,就要配置一下xcode的环境.参考文章:http://www.cnblogs.com/bomo/p/4671516.html?utm_source=tuicool.这里不再详细说明了.




4.自定义增加打印信息内容可以在pch文件中这样写:

#define LCLogError(错误信息, ...) DDLogError((@"错误信息 : \n%s [Line %d] \n" 错误信息), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)


#define LCLogWarn(警告, ...) DDLogWarn((@"警告 : \n%s [Line %d] \n" 警告), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)


#define LCLogInfo(提示信息, ...) DDLogInfo((@"提示信息 :\n %s [Line %d] \n" 提示信息), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

#define LCLogVerbose(详细信息, ...) DDLogVerbose((@"详细信息 : \n%s [Line %d]\n" 详细信息), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)






5.读取log文件:

(NSArray*)getLogFileMessage

{

    

   NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES)objectAtIndex:0];

    

   NSString * logPath = [docPath stringByAppendingPathComponent:@"Caches"];

    logPath = [logPathstringByAppendingPathComponent:@"Logs"];

    

    

   NSFileManager * fileManger = [NSFileManagerdefaultManager];

   NSError * error = nil;

   NSArray * fileList = [[NSArrayalloc]init];

    fileList = [fileMangercontentsOfDirectoryAtPath:logPath error:&error];

   NSMutableArray * listArray = [[NSMutableArrayalloc]init];

   for (NSString * oneLogPathin fileList)

    {

       if([oneLogPath hasSuffix:@".log"])

        {

           NSString * truePath = [logPath stringByAppendingPathComponent:oneLogPath];

           NSLog(@"%@",truePath);

           NSString *logFileMessage= [[NSStringalloc]initWithContentsOfFile:truePathencoding:NSUTF8StringEncodingerror:nil];

            [listArrayaddObject:exceptionInfo];

        }

    }

   NSLog(@"%@",listArray);

   return listArray;

}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值