45 lines
856 B
Go
45 lines
856 B
Go
package log
|
||
|
||
import (
|
||
"apigo.cc/go/config"
|
||
)
|
||
|
||
var DefaultLogger *Logger
|
||
|
||
func init() {
|
||
RegisterWriterMaker("es", newESWriter)
|
||
RegisterWriterMaker("ess", newESWriter)
|
||
|
||
var conf Config
|
||
_ = config.Load(&conf, "log")
|
||
DefaultLogger = NewLogger(conf)
|
||
}
|
||
|
||
// New 创建带有 traceId 的 Logger 副本
|
||
func New(traceId string) *Logger {
|
||
return DefaultLogger.New(traceId)
|
||
}
|
||
|
||
// SetDefaultName 设置全局默认应用名称,并同步更新 DefaultLogger
|
||
func SetDefaultName(name string) {
|
||
if name == "" {
|
||
return
|
||
}
|
||
globalDefaultName = name
|
||
if DefaultLogger != nil {
|
||
DefaultLogger.SetName(name)
|
||
}
|
||
}
|
||
|
||
// 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
|
||
}
|