使用logurs处理程序日志
- 下载包,在终端执行命令
go get github.com/sirupsen/logrus
- 官方示例
package main
import (
log "github.com/sirupsen/logrus"
)
func main() {
log.WithFields(log.Fields{
"animal": "walrus",
"number": 1,
"size": 10,
}).Info("A walrus appears")
}
logrus 常用配置
- 把日志格式改成json
logrus.SetFormatter(&log.JSONFormatter{TimestampFormat: "2006-01-02 15:04:06"})
- 文件名和行号加进去
logrus.SetReportCaller(true)
3.控制日志级别
//这里设置成debug级别,系统默认是info级别,不会打印debug日志
logrus.SetLevel(logrus.DebugLevel)
//通过环境变量获取日志级别
if logLevel == "debug" {
log.SetLevel(log.DebugLevel)
} else {
log.SetLevel(log.InfoLevel)
}
使用viper处理程序配置
- 下载包,https://pkg.go.dev/github.com/spf13/viper#readme-install
go get github.com/spf13/viper
- 官方示例
viper.SetDefault("ContentDir", "content")
viper.SetDefault("LayoutDir", "layouts")
viper.SetDefault("Taxonomies", map[string]string{"tag": "tags", "category": "categories"})
- 通过环境变量方式加载程序配置
// 1.定义配置,key就是配置的名称
viper.SetDefault("LOG_LEVEL", "debug")
viper.SetDefault("DB_USERNAME", "root")
viper.SetDefault("DB_PASSWORD", "")
viper.SetDefault("DB_ADDRESS", "127.0.0.1")
viper.SetDefault("DB_PORT", 3306)
//2. 获取环境变量,viper设置的key名和系统配置了环境变量,默认自动绑定
viper.AutomaticEnv()
//3.获取程序的配置
logLevel := viper.GetString("LOG_LEVEL")
dbUsername := viper.GetString("DB_USERNAME")
dbPort := viper.GetInt("DB_PORT")
log.WithFields(log.Fields{
"日志级别": logLevel,
"数据库用户名": dbUsername,
"数据库端口": dbPort,
}).Debug("程序的配置信息")
//4. windos或者linux下设置环境变量
windows - 右击我的电脑-属性-高级- 环境变量
linux export 环境变量名称=值
// 5. 执行后查看debug日志

被折叠的 条评论
为什么被折叠?



