iOS下日誌記錄

2021-09-11 09:19:45 字數 2215 閱讀 3453

ios開發中,一般大家都會自定義乙個dlog的巨集來代替nslog,用來控制release下的log輸出。 但是有以下幾個弊端:

filelogger.logfilemanager.maximumnumberoflogfiles = 20;

filelogger.maximumfilesize = 1024 * 1024 * 5;

filelogger.rollingfrequency = 60 * 60 * 24;

複製**

具體使用大家還是看看github上的介紹。 現在說一下整合中遇到的問題: 1 . 可以自定義輸出log的格式,需要實現ddlogformatter協議,下面提供乙個示例:

- (nsstring *)formatlogmessage:(ddlogmessage *)logmessage 

nsstring *formatstring = [nsstring stringwithformat:@"%@ %@ [@%zd] %@ %@", [logmessage.timestamp descriptionwithlocale:[nslocale currentlocale]], loglevel, logmessage.line, logmessage.function, logmessage.message];

return formatstring;

}複製**

2 . 在單步除錯時會發現,很多級別的日誌不會立即顯示到控制台中。在ddlogmacros.h中,我們可以看到以下幾個巨集定義:

#define ddlogerror(frmt, ...)   log_maybe(no,                log_level_def, ddlogflagerror,   0, nil, __pretty_function__, frmt, ##__va_args__)

#define ddlogwarn(frmt, ...) log_maybe(log_async_enabled, log_level_def, ddlogflagwarning, 0, nil, __pretty_function__, frmt, ##__va_args__)

#define ddloginfo(frmt, ...) log_maybe(log_async_enabled, log_level_def, ddlogflaginfo, 0, nil, __pretty_function__, frmt, ##__va_args__)

#define ddlogdebug(frmt, ...) log_maybe(log_async_enabled, log_level_def, ddlogflagdebug, 0, nil, __pretty_function__, frmt, ##__va_args__)

#define ddlo**erbose(frmt, ...) log_maybe(log_async_enabled, log_level_def, ddlogfla**erbose, 0, nil, __pretty_function__, frmt, ##__va_args__)

複製**

你會發現ddlogerror和其他的巨集定義的第乙個引數不是很一樣,然後找到log_async_enabled的定義,這樣就很明白了,如果你需要立即顯示,把log_async_enabled的定義改為如下即可。

#ifndef log_async_enabled

#define log_async_enabled no

#endif

複製**

3 . 說一下rollingfrequency這個屬性,看了原始碼後發現,作者是根據檔案的建立時間來處理的,所以就會導致這樣的問題,1號15:00建立的檔案,然後用到2號15:00就會重新建立乙個檔案,所以會導致2號的log在15:00被分為2個檔案。

如果需要更高度的自定義,可以去cocoalumberjack主頁上看一下readme

《推廣》

iOS崩潰日誌記錄工具 CrashlyTics

crashlytics優勢 1.crashlytics基本不會漏掉任何應用崩潰的資訊 2.crashlytics對崩潰日誌管理很人性化,會根據崩潰次數排列優先順序,也會顯示相關崩潰資訊 包括裝置資訊等 3.可以定製傳送到郵箱 crashlytics安裝及部署 選擇工程 next 安裝crashlyt...

lnmp環境下日誌記錄

nginx 分為兩種形式 access log 記錄使用者 ip 訪問頁面以及其他資訊 error log 記錄伺服器錯誤資訊 預設安裝目錄 usr share nginx html nginx.conf apache windows中直接檢視apache根目錄下logs檔案中的httpd.conf...

IOS異常日誌記錄與展現功能

效果圖如下 1 封裝ddlogger的類 myfilelogger.件 import import inte ce myfilelogger nsobject property nonatomic,strong,readwrite ddfilelogger filelogger myfilelogg...