在Golang中,可以使用标准库"log"或者第三方库"logrus"、"zap"等来自定义日志格式。下面分别介绍这三种方法:
- 使用标准库"log"
标准库"log"提供了简单的日志功能,可以通过设置前缀和标志来自定义日志格式。例如:
package main import ( "log" "os" ) func main() { log.SetPrefix("INFO: ") log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) log.Println("这是一条日志") }
- 使用第三方库"logrus"
“logrus"是一个功能丰富的日志库,支持多种日志级别和自定义格式。首先需要安装"logrus”:
go get github.com/sirupsen/logrus
然后可以在代码中使用"logrus"来自定义日志格式:
package main import ( "github.com/sirupsen/logrus" ) func main() { logrus.SetFormatter(&logrus.TextFormatter{ FullTimestamp: true, CallerPrettyfier: func(f *runtime.Frame) (string, string) { filename := f.File line := f.Line return filename, fmt.Sprintf("%d", line) }, }) logrus.SetReportCaller(true) logrus.Info("这是一条日志") }
- 使用第三方库"zap"
“zap"是一个高性能的日志库,支持结构化日志和自定义格式。首先需要安装"zap”:
go get -u go.uber.org/zap
然后可以在代码中使用"zap"来自定义日志格式:
package main import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" ) func main() { config := zap.NewProductionConfig() config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder logger, _ := config.Build() defer logger.Sync() core := zapcore.NewCore( zapcore.NewJSONEncoder(config.EncoderConfig), zapcore.AddSync(os.Stdout), zap.InfoLevel, ) logger = zap.New(core) logger.Info("这是一条日志", zap.String("key", "value")) }
以上示例展示了如何使用Golang的自定义日志格式。你可以根据自己的需求选择合适的库和方法。