gookit / slog

📑 Lightweight, configurable, extensible logging library written in Go. Support multi level, multi outputs and built-in multi file logger, buffers, clean, rotate-file handling.一个易于使用的,轻量级、可配置、可扩展的日志库。支持多个级别,输出到多文件;内置文件日志处理、自动切割、清理、压缩等增强功能

Home Page:https://pkg.go.dev/github.com/gookit/slog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

日志格式设置对写入文件的日志无效

dreamsxin opened this issue · comments

Describe the bug

日志格式设置对写入文件的日志无效

To Reproduce

	options := []handler.ConfigFn{
		handler.WithBuffSize(0),
	}
	h, err := handler.NewTimeRotateFile("./test.log", rotatefile.EveryDay, options...)
  
   if err == nil {

        slog.SetFormatter(slog.NewJSONFormatter())
        slog.Std().CallerSkip = 1
        slog.Std().LowerLevelName = false
        slog.Std().ReportCaller = false
        slog.AddHandler(h)
        slog.Info("test----------------")
    }

console 输出已经是 json 格式

formatter 跟着 handler 的。

h, err := handler.NewTimeRotateFile("./test.log", rotatefile.EveryDay, options...)
if err == nil {
   h.SetFormatter(slog.NewJSONFormatter()) // <<==== 

   slog.AddHandler(h)
}

slog.SetFormatter() 是对默认的 输出到console 的handler 生效,所以 console 输出已经是 json 格式