zoukankan      html  css  js  c++  java
  • Swift打印Debug日志,实现Release下不打印

    OC内,我们往往做log打印时,会考虑一个Debug环境下打印,Release下控制不打印,以节约性能消耗。

    OC我们可以这样做:

    在pch文件内,定义如下:

    //打印日志
    #ifdef DEBUG
    #define NSLog(...) NSLog(__VA_ARGS__)
    #else
    #define NSLog(...)
    #endif

    在Swift内要实现同样效果,我们依然可以同理实现:

    1、不同于OC,swift没有pch文件,但Swift中只要在一个文件中声明了一个公开的方法, 其他文件都是可以访问到的。

    2、我们定义一个类文件,里面可以用来写公共方法等

    在文件里加上如下:

    /// 直接打印出内容
    ///
    /// - Parameter message: <#message description#>
    func YJLog<T>(message : T) {
        
        #if DEBUG
            print("(message)")
        #endif
    }
    
    
    /// 打印内容,并包含类名和打印所在行数
    ///
    /// - Parameters:
    ///   - message: 打印消息
    ///   - file: 打印所属类
    ///   - lineNumber: 打印语句所在行数
    func YJLogLine<T>(message : T, file : String = #file, lineNumber : Int = #line) {
        
        #if DEBUG
            
            let fileName = (file as NSString).lastPathComponent
            print("[(fileName):line:(lineNumber)]- (message)")
            
        #endif
    }

    其中,有两个方法:

    第一个是只打印内容,效果和print一样。

    第二个是包括打印类和打印行,类似下图:

    其中:

    #if DEBUG  这个是系统默认加好的,我们不用额外定义这个flag。 

  • 相关阅读:
    职场“潜”规则:心法和技法
    JVM参数配置
    python-编码
    pyserial库-串口通讯模块
    Arduino-舵机
    Arduino-中断
    Arduino-一些函数
    Arduino-位操作
    Nginx (一)Windows下编译Nginx源码以及安装 nginx for windows方法步骤
    MSYS2环境搭建
  • 原文地址:https://www.cnblogs.com/yajunLi/p/7126853.html
Copyright © 2011-2022 走看看