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。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM