• iOS开发中关于nslog的几种流行做法小结


    不管哪种方法,都必须在PCH文件中做下宏定义

    DEBUG和RELEASE要分开,RELEASE时log打印要取消

    方法一:简单直接,用几行代码搞定,简洁但功能少

    #ifdef DEBUG
    #define NSLog(...) NSLog(__VA_ARGS__)
    #define debugMethod() NSLog(@"%s", __func__)
    #else
    #define NSLog(...)
    #define debugMethod()
    #endif

    这个DEBUG在哪设置呢,

    在 "Target > Build Settings > Preprocessor Macros > Debug" 里有一个"DEBUG=1"。

    设置为Debug模式下,Product-->Scheme-->SchemeEdit Scheme
    设置Build Configuration成Debug时,就可以打印nslog了。
    设置Release,发布app版本的时候就不会打印了,提高了性能
     
    或者
    #ifdef DEBUG
    #define **Log( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )//分别是方法地址,文件名,在文件的第几行,自定义输出内容
    #else
    #define **Log( s, ... )
    #endif

     其中:**Log( s, ... )的**是随便你自定义的名字,方便代码直接拷走使用。

     
    方法二:第三方,多彩log,功能多,但稍复杂
     

    1.下载框架

    // 让控制台可以输出颜色插件

    https://github.com/robbiehanson/XcodeColors

    // 带色彩日志框架

    https://github.com/CocoaLumberjack/CocoaLumberjack

    2.安装XcodeColors(输出颜色插件)

    3.导入色彩日志框架

    ===========================================================

    1.定义日志级别

    #ifdef DEBUG

    static const int ddLogLevel = LOG_LEVEL_VERBOSE;

    #else

    static const int ddLogLevel = LOG_LEVEL_OFF;

    #endif

    2. 在didFinishLaunchingWithOptions方法中初始化带色彩日志

    [DDLog addLogger:[DDTTYLogger sharedInstance]];

    3.开启色彩日志

    [[DDTTYLogger sharedInstance] setColorsEnabled:YES];

    4.使用带色彩日志

    5.修复Xcode6不显示色彩日志问题

    >In Xcode bring up the Scheme Editor (Product -> Edit Scheme...)

    >Select "Run" (on the left), and then the "Arguments" tab

    >Add a new Environment Variable named "XcodeColors", with a value of "YES"

    ===========================================================

    1.日志类型

    DDLog:基础类,必须引入的。

    DDASLLogger:支持将调试语句写入到苹果的日志中。一般正对Mac开发。可选。

    DDTTYLogger:支持将调试语句写入xCode控制台。我们即使要用它。可选。

    DDFileLogger:支持将调试语句写入到文件系统。可选。

    2.DDLog日志种类。

    DDLogError:定义输出错误文本

    DDLogWarn:定义输出警告文本

    DDLogInfo:定义输出信息文本

    DDLogDebug:定义输出调试文本

    DDLogVerbose:定义输出详细文本

    3.日志级别

    >LOG_LEVEL_ERROR,那么你只会看到DDlogError语句。

    >LOG_LEVEL_WARN,那么你只会看到DDLogError和DDLogWarn语句。

    >LOG_LEVEL_INFO,那么你会看到error、Warn和Info语句。

    >LOG_LEVEL_VERBOSE,那么你会看到所有DDLog语句。

    >LOG_LEVEL_OFF,你将不会看到任何DDLog语句。

    ===========================================================

    1.自定义颜色

    [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor greenColor] backgroundColor:[UIColor purpleColor] forFlag:DDLogFlagInfo];

    // 快速定位打印方法

    #define DDInfoLog DDLogWarn(@"%d %s", __LINE__ ,__func__)

     
  • 相关阅读:
    Proteus仿真与实际的差别
    用 Proteus学习51单片机之1602液晶
    用Proteus学习51单片机之中断
    用Proteus学习51单片机之键盘
    用Proteus学习51单片机之数码管
    PHPnow 安装服务 [ Apache_pn ] 失败的解决方法 for[windows7/vista]
    chrome 不能打印背景图的解决方法
    JS 无块级作用域
    IE6下zindex犯癫不起作用bug的初步研究
    ie6下的js调试工具companion.js
  • 原文地址:https://www.cnblogs.com/yunxinxi/p/4665925.html
Copyright © 2020-2023  润新知