重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
本文主要介紹 Golang 中最佳日志解決方案,包括常用日志包logrus 的基本使用,如何結合file-rotatelogs 包實現日志文件的輪轉切割兩大話題。
Golang 關于日志處理有很多包可以使用,標準庫提供的 log 包功能比較少,不支持日志級別的精確控制,自定義添加日志字段等。在眾多的日志包中,更推薦使用第三方的 logrus 包,完全兼容自帶的 log 包。logrus 是目前 Github 上 star 數量最多的日志庫,logrus 功能強大,性能高效,而且具有高度靈活性,提供了自定義插件的功能。
很多開源項目,如 docker,prometheus,dejavuzhou/ginbro 等,都是用了 logrus 來記錄其日志。
logrus 特性
logrus 基本使用
package main import ( "os" "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus" ) var logger *logrus.Entry func init() { // 設置日志格式為json格式 log.SetFormatter(&log.JSONFormatter{}) log.SetOutput(os.Stdout) log.SetLevel(log.InfoLevel) logger = log.WithFields(log.Fields{"request_id": "123444", "user_ip": "127.0.0.1"}) } func main() { logger.Info("hello, logrus....") logger.Info("hello, logrus1....") // log.WithFields(log.Fields{ // "animal": "walrus", // "size": 10, // }).Info("A group of walrus emerges from the ocean") // log.WithFields(log.Fields{ // "omg": true, // "number": 122, // }).Warn("The group's number increased tremendously!") // log.WithFields(log.Fields{ // "omg": true, // "number": 100, // }).Fatal("The ice breaks!") }
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。