golang日志
一、使用默认的logger
package log import ( "threat-collector/config" "github.com/sirupsen/logrus" ) var ( logLevel = config.GlobalConfig.Log.LogLevel ) // LoggerConfig is the configuration of the logger. type LoggerConfig struct { Level string EnableCaller bool Format string } // InitLogger init logrus logger. func InitLogger() { // 设定 text 格式,减少性能消耗 logrus.SetFormatter(&logrus.TextFormatter{}) logrus.SetReportCaller(true) // 从配置文件中获得 log level level, err := logrus.ParseLevel(logLevel) if err != nil { panic(err) } logrus.SetLevel(level) } // Logger returns the default logger. func Logger(service string) *logrus.Entry { return logrus.WithField("service", service) }
说明:
1.没有定义Logger,因此使用的是logrus的默认Logger。
2.没有输出到文件。但是通过docker部署,可以通过docker来获取日志信息。
默认情况下,日志输出到io.Stderr
。可以调用logrus.SetOutput
传入一个io.Writer
参数。后续调用相关方法日志将写到io.Writer
中。现在,我们就能像上篇文章介绍log时一样,可以搞点事情了。传入一个io.MultiWriter
,同时将日志写到bytes.Buffer
、标准输出和文件中:
writer1 := &bytes.Buffer{} writer2 := os.Stdout writer3, err := os.OpenFile("log.txt", os.O_WRONLY|os.O_CREATE, 0755) if err != nil { log.Fatalf("create file log.txt failed: %v", err) } logrus.SetOutput(io.MultiWriter(writer1, writer2, writer3))
3.使用:
logger = logutil.Logger("main") logger = logutil.Logger("core")
posted on 2021-11-08 14:12 myworldworld 阅读(286) 评论(0) 收藏 举报