美文网首页
使用CocoaLumberjack给输出Log分级

使用CocoaLumberjack给输出Log分级

作者: hj的简书 | 来源:发表于2016-03-20 20:30 被阅读0次

    如果做过android的同学可以知道,android studio的console输出的log可以拥有不同的颜色样式,这样可以方便程序员进行选择性的观看、调试。但是这么炫的功能Xcode可以做到吗?答案是YES。
    好,废话不多说,下面就开始介绍怎么操作

    1.使用CocoaPods导入CocoaLumberjack

    1.创建一个新的工程
    2.这里可以通过命令行创建文件的方式或者通过Xcode插件CocoaPods创建Podfile
    3.打开Podfile文件,并添加pod 'CocoaLumberjack'
    4.执行install命令安装CocoaLumberjack
    5.安装完后,重启Xcode

    成功安装CocoaLumberjack.png

    2.为Xcode添加颜色插件

    1.这里可以通过github搜索XcodeColors下载安装或者其他方式安装后,重启Xcode
    2.在AppDelegate.m文件中添加

    [DDLog addLogger:[DDTTYLogger sharedInstance]]; // 标准lumberjack初始化
    [[DDTTYLogger sharedInstance] setColorsEnabled:YES];// 启用颜色区分
    

    3.依次执行Xcode->Product->Scheme->Edit Scheme打开配置文件。在如下图片添加参数

    Xcode配置.png

    3.创建一个pch全局配置文件

    1.在Xcode->Build Setting ->prefix Header配置添加pch文件

    添加pch文件.png

    2.在pch文件中添加需要导入用的头文件

    #import <DDLog.h>
    #import <CocoaLumberjack.h>
    #import "HJConstants.h" // 常量文件
    
    #ifdef DEBUG
        #define HJLogError(...) DDLogError(__VA_ARGS__); // 红色
        #define HJLogWarn(...) DDLogWarn(__VA_ARGS__); // 橙色
        #define HJLogInfo(...) DDLogInfo(__VA_ARGS__); // 默认是黑色
        #define HJLogVerbose(...) DDLogVerbose(__VA_ARGS__); // 默认是黑色
    #else
        #define HJLogError(...)
        #define HJLogWarn(...)
        #define HJLogInfo(...)
        #define HJLogVerbose(...)
    #endif
    

    4.创建一个常量文件用来保持常量

    1.在.h文件中添加

    extern int ddLogLevel;
    

    2.在.m文件中添加

    int ddLogLevel =
    #ifdef DEBUG
        LOG_LEVEL_VERBOSE;
    #else
        LOG_LEVEL_OFF;
    #endif
    

    3.描述一下LOG_LEVEL的不同等级所代表的做用

    1.如果你将日志级别设置为 LOG_LEVEL_ERROR,那么你只会看到DDlogError语句。
    2.如果你将日志级别设置为LOG_LEVEL_WARN,那么你只会看到DDLogError和DDLogWarn语句。
    3.如果您将日志级别设置为 LOG_LEVEL_INFO,那么你会看到error、Warn和Info语句。
    4.如果您将日志级别设置为LOG_LEVEL_VERBOSE,那么你会看到所有DDLog语句。
    5.如果您将日志级别设置为 LOG_LEVEL_OFF,你将不会看到任何DDLog语句。
    

    4.输出想要的结果

    输出结果.png

    5.当然我们也可以自定义输出的颜色,只需要执行类似如下方法就可以实现

    // Let's customize our colors.
    // DDLogInfo : Pink
    #if TARGET_OS_IPHONE
    UIColor *pink = [UIColor colorWithRed:(255/255.0) green:(58/255.0) blue:(159/255.0) alpha:1.0];
    #elseNSColor *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];
    DDLogInfo(@"Warming up printer"); // Prints in Pink !
    

    最后添加github例子地址github

    相关文章

      网友评论

          本文标题:使用CocoaLumberjack给输出Log分级

          本文链接:https://www.haomeiwen.com/subject/dofklttx.html