我希望能够只有panic(err)
个,并且在我的日志(log)聚合的slog
格式中有死机输出.
我需要的是将死机的完整输出和堆栈跟踪嵌套在我的Logsmsg
字段中.
有没有可能在没有大量定制处理的情况下做到这一点?
我希望能够只有panic(err)
个,并且在我的日志(log)聚合的slog
格式中有死机输出.
我需要的是将死机的完整输出和堆栈跟踪嵌套在我的Logsmsg
字段中.
有没有可能在没有大量定制处理的情况下做到这一点?
您可以通过将默认记录器设置为slog
记录器,以一种简单的方式记录死机.缺点是,以这种方式记录的所有内容都将记录在INFO
级别,而堆栈跟踪将不包括在内.
slogger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
slog.SetDefault(slogger)
slogger.Info("just some info")
log.Panic("unrecoverable error")
将输出:
{"time":"2009-11-10T23:00:00Z","level":"INFO","msg":"just some info"}
{"time":"2009-11-10T23:00:00Z","level":"INFO","msg":"unrecoverable error"}
panic: unrecoverable error
...
<panic output>
...