debian

Debian系统Golang日志配置技巧

小樊
44
2025-08-17 12:37:11
栏目: 编程语言

在Debian系统上配置Golang日志可结合标准库、第三方库及系统工具,以下是关键技巧:

一、选择日志库

二、基础配置示例

1. 标准库配置

package main
import (
    "log"
    "os"
)
func main() {
    logFile, _ := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
    log.SetOutput(logFile) // 输出到文件
    log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) // 格式:日期+时间+文件名
    log.Println("This is a log message.")
}

2. logrus配置

package main
import (
    "github.com/sirupsen/logrus"
)
func main() {
    log := logrus.New()
    log.SetFormatter(&logrus.JSONFormatter{}) // JSON格式
    log.SetLevel(logrus.InfoLevel) // 日志级别
    log.WithFields(logrus.Fields{"key": "value"}).Info("Structured log message")
}

3. zap配置

package main
import (
    "go.uber.org/zap"
)
func main() {
    logger, _ := zap.NewProduction() // 生产环境配置
    defer logger.Sync()
    logger.Info("This is a zap log", zap.String("key", "value")) // 结构化字段
}

三、日志轮转与归档

使用logrotate工具管理日志文件,避免单个文件过大:

  1. 安装:sudo apt install logrotate
  2. 创建配置文件/etc/logrotate.d/myapp
    /path/to/app.log {
        daily
        rotate 7
        missingok
        compress
        create 0644 root root
    }
    
  3. 手动测试:sudo logrotate -vf /etc/logrotate.d/myapp

四、高级技巧

五、参考资料

0
看了该问题的人还看了