mirror of
https://github.com/infinite-iroha/touka.git
synced 2026-06-13 15:47:38 +08:00
feat: 引入 Logger 接口抽象,支持自定义日志实现
- 新增 Logger 接口定义,支持 zap/slog 等自定义实现 - 新增 CloserLogger 接口用于支持关闭操作 - Engine 新增 SetLogger/GetLogger 方法使用接口 - 新增 compat.go 兼容层,保留 reco 兼容方法 - 新增 slog 适配器示例 - 删除 zap 示例 - Context.GetLogger() 返回接口类型
This commit is contained in:
parent
58fd877ae2
commit
c8b14ef43a
7 changed files with 575 additions and 17 deletions
|
|
@ -39,7 +39,16 @@ func CloseLogger(logger *reco.Logger) {
|
|||
}
|
||||
}
|
||||
|
||||
// CloseLogger 关闭 Engine 的日志实现
|
||||
// 如果 logger 实现了 CloserLogger 接口,会调用其 Close 方法
|
||||
func (engine *Engine) CloseLogger() {
|
||||
if cl, ok := engine.logger.(CloserLogger); ok {
|
||||
if err := cl.Close(); err != nil {
|
||||
log.Printf("Close Logger Error: %s", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
// 兼容旧代码
|
||||
if engine.LogReco != nil {
|
||||
CloseLogger(engine.LogReco)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue