27 lines
538 B
Go
27 lines
538 B
Go
package logger
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"log/slog"
|
||
|
|
"os"
|
||
|
|
)
|
||
|
|
|
||
|
|
// 全局默认 logger,使用 JSON handler 输出到 stdout。
|
||
|
|
var defaultLogger *slog.Logger
|
||
|
|
|
||
|
|
func init() {
|
||
|
|
defaultLogger = slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
|
||
|
|
Level: slog.LevelInfo,
|
||
|
|
}))
|
||
|
|
slog.SetDefault(defaultLogger)
|
||
|
|
}
|
||
|
|
|
||
|
|
// Default 返回全局 logger 实例
|
||
|
|
func Default() *slog.Logger {
|
||
|
|
return defaultLogger
|
||
|
|
}
|
||
|
|
|
||
|
|
// WithService 返回带有 service 字段的 logger
|
||
|
|
func WithService(name string) *slog.Logger {
|
||
|
|
return defaultLogger.With("service", name)
|
||
|
|
}
|