在Linux系統中管理Golang日志,可結合標準庫、第三方庫及系統工具實現,核心方案如下:
基礎日志記錄
使用Go標準庫log
包,支持輸出到控制臺或文件,可通過log.SetOutput
指定輸出目標,log.SetFlags
設置時間戳、文件名等格式。
logFile, _ := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
log.SetOutput(logFile)
log.Println("基礎日志信息")
第三方庫增強功能
import "github.com/sirupsen/logrus"
logger := logrus.New()
logger.SetLevel(logrus.DebugLevel)
logger.SetFormatter(&logrus.JSONFormatter{})
file, _ := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
logger.SetOutput(file)
logger.Info("結構化日志示例")
日志輪轉與歸檔
MaxSize
(文件大?。?、MaxBackups
(保留份數)、MaxAge
(保留天數)實現自動輪轉。集中式日志管理
性能優化
zap
的異步模式。安全與合規
chmod
限制日志文件訪問權限,避免未授權讀取。選型建議:
log
或輕量級庫(如zerolog
)。logrus
(功能全面)或zap
(高性能),搭配lumberjack
實現輪轉。