- 配置 slog JSON 输出和日志级别 - 添加请求 ID、访问日志及上下文日志工具 - 拆分启动初始化并统一启动失败处理 BREAKING CHANGE: 配置文件必须提供 log.level,缺失或非法将导致启动失败
18 lines
309 B
Go
18 lines
309 B
Go
package util
|
|
|
|
import (
|
|
"context"
|
|
"log/slog"
|
|
"lyra/internal/pkg/constant"
|
|
)
|
|
|
|
func Logger(ctx context.Context) *slog.Logger {
|
|
logger := slog.Default()
|
|
|
|
if requestID, ok := ctx.Value(constant.RequestIDKey).(string); ok {
|
|
logger = logger.With(string(constant.RequestIDKey), requestID)
|
|
}
|
|
|
|
return logger
|
|
}
|