swift自定義log

第一步:獲取打印文件名,方法名,行數(shù)

//1.獲取打印所在的文件
let file = (#file as NSString).lastPathComponent;
print(file);

//2.獲取打印所在的方法
let function = #function
print(function);

//3.獲取打印所在的行號(hào)
let line = #line;
print(line)

第二步:全局化

swift中的 全局函數(shù):寫在每個(gè)文件對應(yīng)的類外部
全局函數(shù)大部分寫在APPdelegate中

此時(shí)就可以這樣寫

func ZNLog<T>(message:T, file:String = #file, funcName:String = #function, lineNum:Int = #line) {

     let fileName = (file as NSString).lastPathComponent;

     print("[文件名:\(fileName)]:[行數(shù):\(lineNum)]-打印內(nèi)容:\n\(message)");

}

第三步:配置DeBug下打印, Release 下不打印

swift中沒有宏定義,只能通過添加配置字段

圖片.png

最終寫法

func ZNLog<T>(message:T, file:String = #file, funcName:String = #function, lineNum:Int = #line) {

 #if DEBUG

       let fileName = (file as NSString).lastPathComponent;

      print("[文件名:\(fileName)]:[行數(shù):\(lineNum)]-打印內(nèi)容:\n\(message)");

 #endif

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • NO.1 先了解下 Debug 和 Release 的區(qū)別 Release是發(fā)行版本,比Debug版本有一些優(yōu)化,...
    浮橋小麥閱讀 930評(píng)論 0 0
  • Swift中打印不像OC那樣每次打印系統(tǒng)會(huì)自己打印出時(shí)間和所在類名,所以在swift中要自己封裝.自定義Log要用...
    Mortimey_yt閱讀 470評(píng)論 0 1
  • 在開發(fā)過程中,打印Log進(jìn)行調(diào)試是必不可少的,但是在上線之后這些Log會(huì)很消耗性能資源,同時(shí)我們又想在Log中顯示...
    Vonkin閱讀 4,377評(píng)論 0 3
  • 1 相關(guān)知識(shí)點(diǎn) (1)獲取所在文件 (2)獲取在的方法 (3)獲取在的行數(shù) 2 自定義log (1)在AppDel...
    小碼碼閱讀 529評(píng)論 1 3
  • 導(dǎo)語在開發(fā)中經(jīng)常會(huì)打印出一些內(nèi)容來進(jìn)行調(diào)試,但是這些打印內(nèi)容會(huì)消耗性能,所以我們需要在 Release (發(fā)布)的...
    三十六_閱讀 744評(píng)論 0 0

友情鏈接更多精彩內(nèi)容