2026-05-02 23:39:10 +08:00
|
|
|
|
package log
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"apigo.cc/go/config"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
var DefaultLogger *Logger
|
|
|
|
|
|
|
|
|
|
|
|
func init() {
|
2026-05-12 22:25:06 +08:00
|
|
|
|
RegisterWriterMaker("es", newESWriter)
|
|
|
|
|
|
RegisterWriterMaker("ess", newESWriter)
|
2026-05-02 23:39:10 +08:00
|
|
|
|
|
|
|
|
|
|
var conf Config
|
2026-05-05 13:23:25 +08:00
|
|
|
|
_ = config.Load(&conf, "log")
|
2026-05-02 23:39:10 +08:00
|
|
|
|
DefaultLogger = NewLogger(conf)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// New 创建带有 traceId 的 Logger 副本
|
|
|
|
|
|
func New(traceId string) *Logger {
|
|
|
|
|
|
return DefaultLogger.New(traceId)
|
|
|
|
|
|
}
|
2026-05-12 22:25:06 +08:00
|
|
|
|
|
|
|
|
|
|
// SetDefaultName 设置全局默认应用名称,并同步更新 DefaultLogger
|
|
|
|
|
|
func SetDefaultName(name string) {
|
|
|
|
|
|
if name == "" {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
globalDefaultName = name
|
|
|
|
|
|
if DefaultLogger != nil {
|
|
|
|
|
|
DefaultLogger.SetName(name)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-05-13 01:07:42 +08:00
|
|
|
|
|
|
|
|
|
|
// As 仿照 cast.As,使用 DefaultLogger 记录错误并返回零值 (消除摩擦)
|
|
|
|
|
|
func As[T any](v T, err error) T {
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
if DefaultLogger != nil {
|
|
|
|
|
|
DefaultLogger.Error(err.Error())
|
|
|
|
|
|
}
|
|
|
|
|
|
var zero T
|
|
|
|
|
|
return zero
|
|
|
|
|
|
}
|
|
|
|
|
|
return v
|
|
|
|
|
|
}
|