2016-09-19 86 views
0

我想爲我的所有日​​志添加前綴。我嘗試子類XCGLogger覆蓋logln(...)debug(...)函數。如何用XCGLogger前綴所有日誌

但我在使用本

  1. 編譯器總是給我的錯誤(見圖片)面臨兩個困難。
  2. 我不知道如何自定義給定的日誌消息,因爲參數是閉包。

enter image description here

感謝

+0

請在這裏添加功能請求:https://github.com/DaveWoodCom/XCGLogger/issues,我會添加它。無論如何,這是我想要添加的東西,只是在優先級列表中很低。 –

回答

0

好吧,我發現。我們需要定義一個符合LogFormatterProtocolclassstruct,並實現format(logDetails: inout LogDetails, message: inout String) -> String函數來修改inout消息。然後創建一個類或結構的實例,並把它添加到目的地格式化陣列:

let consoleDest = ConsoleDestination(owner: myLogger, identifier: "") // myLogger is an instance of XCGLogger 
consoleDest.formatters = [MyFormatter()] // MyFormatter is a struct conforming to LogFormatterProtocol 
myLogger.add(destination: consoleDest) 
0

您在上面的代碼中已經有了問題,是你沒有說清楚的編譯器,其中的super.logln您打電話的方法。由於該方法有多個版本,並且具有各種功能,其中一些功能有缺省設置,所以您需要明確包含足夠的參數供編譯器知道您要調用哪個版本。這就是爲什麼你的錯誤消息說「不明確...」