组件分享之后端组件——用于将日志写入滚动文件的组件包lumberjack
生活随笔
收集整理的這篇文章主要介紹了
组件分享之后端组件——用于将日志写入滚动文件的组件包lumberjack
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
組件分享之后端組件——用于將日志寫入滾動文件的組件包lumberjack
背景
近期正在探索前端、后端、系統端各類常用組件與工具,對其一些常見的組件進行再次整理一下,形成標準化組件專題,后續該專題將包含各類語言中的一些常用組件。歡迎大家進行持續關注。
組件基本信息
- 組件:lumberjack
- 開源協議: MIT license
內容
本節我們分享一個用于將日志寫入滾動文件的組件包lumberjack,它可以有效的配合zap組件進行快速使用。
Lumberjack 旨在成為伐木基礎設施的一部分。它不是一個多合一的解決方案,而是一個位于日志堆棧底部的可插入組件,它簡單地控制寫入日志的文件。
Lumberjack 可以很好地與任何可以寫入 io.Writer 的日志包配合使用,包括標準庫的日志包。
Lumberjack 假設只有一個進程正在寫入輸出文件。在同一臺機器上的多個進程中使用相同的伐木工人配置將導致不當行為。
具體使用方式如下:
1、安裝
2、使用
log.SetOutput(&lumberjack.Logger{Filename: "/var/log/myapp/foo.log",MaxSize: 500, // megabytesMaxBackups: 3,MaxAge: 28, //daysCompress: true, // disabled by default })3、和zap結合使用核心函數,其中配置參數部分自己定義一個結構體進行加載即可
// // getLogWriter // @Description: 日志文件分割配置 // @param filename // @return zapcore.WriteSyncer // func getLogWriter(fileName string) zapcore.WriteSyncer {lumberJackLogger := &lumberjack.Logger{Filename: fileName,MaxSize: config.Get().Log.MaxSize, //最大M數,超過則切割MaxBackups: config.Get().Log.MaxBackups, //最大文件保留數,超過就刪除最老的日志文件MaxAge: config.Get().Log.MaxAge, //保存30天Compress: config.Get().Log.Compress, //是否壓縮}return zapcore.AddSync(lumberJackLogger) }更多該組件的使用方式,可以參考我編寫的Golang快速開發框架系列。
本文聲明:
88x31.png 知識共享許可協議本作品由 cn華少 采用 知識共享署名-非商業性使用 4.0 國際許可協議 進行許可。
總結
以上是生活随笔為你收集整理的组件分享之后端组件——用于将日志写入滚动文件的组件包lumberjack的全部內容,希望文章能夠幫你解決所遇到的問題。