slog
slog copied to clipboard
是否可以自定义level、caller的宽度
[DEBUG] [INFO]
这个宽度不一直看起来有点别扭。
可以通过配置 slog.LevelNames 设置 level 名称。caller 就不好固定了,长度不确定。
func TestIssues_161(t *testing.T) {
slog.LevelNames[slog.WarnLevel] = "WARNI"
slog.LevelNames[slog.InfoLevel] = "INFO "
slog.LevelNames[slog.NoticeLevel] = "NOTIC"
l := slog.New()
l.DoNothingOnPanicFatal()
l.AddHandler(handler.ConsoleWithMaxLevel(slog.TraceLevel))
for _, level := range slog.AllLevels {
l.Logf(level, "a %s test message", level.String())
}
assert.NoErr(t, l.LastErr())
}
Output:
master 新增了 slog.LimitLevelNameLen(5) 支持设置格式化时的level名称长度,会自动处理成设置的长度输出。下个小版本发布
l := slog.New()
l.DoNothingOnPanicFatal()
h := handler.ConsoleWithMaxLevel(slog.TraceLevel)
// 通过 SetFormatter 设置格式化 LevelNameLen=5
h.SetFormatter(slog.TextFormatterWith(slog.LimitLevelNameLen(5)))
l.AddHandler(h)
for _, level := range slog.AllLevels {
l.Logf(level, "a %s test message", level.String())
}
assert.NoErr(t, l.LastErr())