OC分級日誌工具,支援4種日誌級別,提供兩種持久化方案
原始碼地址: github.com/FinderTiwk/…
使用
#import "Log4OC.h"
//DEBUGLog(建議開發除錯使用)
DEBUGLog(@"這是一個DEBUG級別日誌");
DEBUGLog(@"FinderTiwk", @"這是一個帶作者的的DEBUG級別日誌");
//INFOLog(建議記錄關鍵資訊使用)
INFOLog(@"這是一個INFO級別日誌");
INFOLog(@"FinderTiwk", @"這是一個帶作者的的INFO級別日誌");
//WARNINGLog(建議記錄警告敏資訊使用)
WARNINGLog(@"這是一個WARNING級別日誌");
WARNINGLog(@"FinderTiwk", @"這是一個帶作者的的WARNING級別日誌");
//ERRORLog(建議記錄發生異常錯誤時使用)
ERRORLog(@"這是一個ERROR級別日誌");
ERRORLog(@"FinderTiwk", @"這是一個帶作者的的ERROR級別日誌");
----------------------Console Print-----------------------
[?DEBUG] 2018-11-14 12:53:45: 這是一個DEBUG級別日誌
[?DEBUG] 2018-11-14 12:53:45(FinderTiwk): 這是一個帶作者的的DEBUG級別日誌
[?INFO] 2018-11-14 12:53:45: 這是一個INFO級別日誌
[?INFO] 2018-11-14 12:53:45(FinderTiwk): 這是一個帶作者的的INFO級別日誌
[⚠️WARNING] 2018-11-14 12:53:45: 這是一個WARNING級別日誌
[⚠️WARNING] 2018-11-14 12:53:45(FinderTiwk): 這是一個帶作者的的WARNING級別日誌
[?ERROR] 2018-11-14 12:53:45: 這是一個ERROR級別日誌
[?ERROR] 2018-11-14 12:53:45(FinderTiwk): 這是一個帶作者的的ERROR級別日誌
複製程式碼
偏好設定
0x00 日誌級別
LogLevel | DESC |
---|---|
LogLevelDEBUG | 預設; 顯示包括(DEBUGLog,INFOLog,WARNINGLog,ERRORLog的Log) |
LogLevelINFO | 顯示包括(INFOLog,WARNINGLog,ERRORLog的Log) |
LogLevelWARNING | 顯示包括(WARNINGLog,ERRORLog的Log)* |
LogLevelERROR | 只顯示ERRORLog的log |
LogLevelNONE | 關閉所有日誌 |
#ifdef __OPTIMIZE__
//當打包時建議去除DEBUG級別的日誌
setLogLevel(LogLevelINFO);
#endif
//獲取當前日誌級別
LogLevel level = currentLogLevel();
複製程式碼
0x01 日誌模式
- mode: 日誌模式
- 0: 只列印到控制檯,DEFAULT
- 1: 將日誌儲存到Sqlite中
- 2: 將日誌儲存到本地檔案中
- clean: 當日志模式不是0時,是否自動清理日誌
- 0: 不自動清理
- 大於0: 自動清理當前日期之前的n天的日誌
- both: 當日志模式不是0時,日誌持久化時是否同時列印到控制檯
- YES: 同時輸出到控制檯和檔案 (DEBUG時用)
- NO: 只輸出到檔案
extern void setLogMode(NSUInteger mode,NSUInteger clean, BOOL both);
複製程式碼
0x02 日誌檔案切割
當日志模式為2儲存為本地檔案時,設定日誌檔案大小閥值,K為單位, default 1024K/1M,當單個.log檔案大於這個閥值時,會自動生成新的檔案寫入。
日誌將會儲存在應用沙盒中,名稱例如: 2018_xx_xx-1.log ,2018_xx_xx-2.log
extern void setLogMaxSize(NSUInteger threshold);
複製程式碼
日誌過濾
- 按日誌級別過濾
- 按寫日誌的作者名稱過濾
- 按時間過濾
0x00 控制檯模式下
日誌級別: 可以通過列印出的日誌字首用肉眼觀測,或者在控制檯裡COMMAND+F搜尋關鍵字(DEBUG,INFO,WARNING,ERROR)
作者名稱: 在控制檯裡COMMAND+F搜尋作者名稱
時間: 控制檯日誌輸出按時間順序輸出,自己檢視日誌字首裡的時間戳
0x01 資料庫模式下
資料庫表結構,表名Logger
欄位 | 資料型別 | 預設值 | 描述 |
---|---|---|---|
level | INTEGER | 日誌級別 | |
time | DATE | CURRENT_TIMESTAMP | 列印時間 |
content | TEXT | 日誌內容 | |
author | TEXT | 作者,DEAFULT Apple |
日誌級別:
SELECT * FROM `Logger` WHERE level = 2
複製程式碼
作者名稱:
SELECT * FROM `Logger` WHERE author = 'FinderTiwk'
複製程式碼
時間:
SELECT * FROM `Logger` WHERE time > '2018-11-13 12:12:12'
複製程式碼
多條件過濾:
SELECT * FROM `Logger` WHERE author = 'FinderTiwk' AND level = 2 AND time > '2018-11-13 12:12:12'
複製程式碼
0x02 本地檔案模式
使用Mac系統自帶的Console開啟2018_xx_xx-1.log
檔案,通過關鍵字搜尋