logger包介紹
logger支持功能
- logger支持自定義時間格式;
- logger支持不同的日志等級輸出,能夠有效提高日志輸出性能和檢索;
- logger支持控制台+文件+網絡的三種方式輸出,並且可以任意組合;
- logger支持控制台輸出顏色區分;
- logger支持文本輸出的自定制;
- logger支持網絡日志傳輸,例如直連logstash發送;
- logger支持輸出程序文件名和行數、時間等;
logger日志等級
等級 | 配置 | 釋義 | 控制台顏色 |
0 | EMER | 系統級緊急,比如磁盤出錯,內存異常,網絡不可用等 | 紅色底 |
1 | ALRT | 系統級警告,比如數據庫訪問異常,配置文件出錯等 | 紫色 |
2 | CRIT | 系統級危險,比如權限出錯,訪問異常等 | 藍色 |
3 | EROR | 用戶級錯誤 | 紅色 |
4 | WARN | 用戶級警告 | 黃色 |
5 | INFO | 用戶級重要 | 天藍色 |
6 | DEBG | 用戶級調試 | 綠色 |
7 | TRAC | 用戶級基本輸出,比如成員信息,結構體值等 | 綠色 |
logger安裝
go get github.com/wonderivan/logger
簡單使用
package main import "logger" func main() { logger.Trace("this is Trace") // 由於默認輸出,只會在控制台輸出Debug及其以上日志,所以該條不會輸出 logger.Debug("this is Debug") logger.Info("this is Info") logger.Warn("this is Warn") logger.Error("this is Error") logger.Crit("this is Critical") logger.Alert("this is Alert") logger.Emer("this is Emergency") }
參數配置
參數
{ "TimeFormat":"2006-01-02 15:04:05", // 輸出日志開頭時間格式 "Console": { // 控制台日志配置 "level": "TRAC", // 控制台日志輸出等級 "color": true // 控制台日志顏色開關 }, "File": { // 文件日志配置 "filename": "app.log", // 初始日志文件名 "level": "TRAC", // 日志文件日志輸出等級 "daily": true, // 跨天后是否創建新日志文件,當append=true時有效 "maxlines": 1000000, // 日志文件最大行數,當append=true時有效 "maxsize": 1, // 日志文件最大大小,當append=true時有效 "maxdays": -1, // 日志文件有效期 "append": true, // 是否支持日志追加 "permit": "0660" // 新創建的日志文件權限屬性 }, "Conn": { // 網絡日志配置 "net":"tcp", // 日志傳輸模式 "addr":"10.1.55.10:1024", // 日志接收服務器 "level": "Warn", // 網絡日志輸出等級 "reconnect":true, // 網絡斷開后是否重連 "reconnectOnMsg":false, // 發送完每條消息后是否斷開網絡 } }
如何參數配置
由兩種方式配置
通過調用logger.SetLogger(config string)方法設置參數,config支持json配置,也支持指定內容為json配置的文件路徑,例如:
- 通過配置參數直接配置
logger.SetLogger(`{"Console": {"level": "DEBG"}}`)
- 通過配置文件配置
logger.SetLogger("/home/log.json")