codex optz.

This commit is contained in:
2026-06-20 23:29:58 +08:00
parent 40afc6c0d5
commit ebed85772f
11 changed files with 282 additions and 422 deletions

View File

@@ -168,122 +168,94 @@ func (l *Logger) sendToRemote(level, name, out string) {
utils.HttpPost(l.endpoint, nil, jsonBytes)
}
func (l *Logger) loggerFor(level vars.LogLevel) (*log.Logger, string) {
switch level {
case vars.DEBUG:
return l.debugLogger, "DEBUG"
case vars.INFO:
return l.infoLogger, "INFO"
case vars.WARN:
return l.warnLogger, "WARN"
case vars.ERROR:
return l.errorLogger, "ERROR"
default:
return l.fatalLogger, "FATAL"
}
}
func (l *Logger) output(level vars.LogLevel, out string, fatal bool) {
if !fatal && l.level > level {
return
}
_ = l.checkAndRotateLog()
logger, levelName := l.loggerFor(level)
if fatal {
logger = l.fatalLogger
levelName = "FATAL"
}
if l.onRemote {
go l.sendToRemote(levelName, l.name, out)
}
_ = logger.Output(3, out)
if fatal {
os.Exit(1)
}
}
func (l *Logger) outputf(level vars.LogLevel, format string, v ...any) {
l.output(level, fmt.Sprintf(format, v...), false)
}
// Debug 输出调试信息
func (l *Logger) Debug(v ...any) {
if l.level <= vars.DEBUG {
l.checkAndRotateLog()
out := fmt.Sprint(v...)
if l.onRemote {
go l.sendToRemote("DEBUG", l.name, out)
}
l.debugLogger.Output(2, out)
}
l.output(vars.DEBUG, fmt.Sprint(v...), false)
}
// Debugf 格式化输出调试信息
func (l *Logger) Debugf(format string, v ...any) {
if l.level <= vars.DEBUG {
l.checkAndRotateLog()
out := fmt.Sprintf(format, v...)
if l.onRemote {
go l.sendToRemote("DEBUG", l.name, out)
}
l.debugLogger.Output(2, out)
}
l.outputf(vars.DEBUG, format, v...)
}
// Info 输出信息
func (l *Logger) Info(v ...any) {
if l.level <= vars.INFO {
l.checkAndRotateLog()
out := fmt.Sprint(v...)
if l.onRemote {
go l.sendToRemote("INFO", l.name, out)
}
l.infoLogger.Output(2, out)
}
l.output(vars.INFO, fmt.Sprint(v...), false)
}
// Infof 格式化输出信息
func (l *Logger) Infof(format string, v ...any) {
if l.level <= vars.INFO {
l.checkAndRotateLog()
out := fmt.Sprintf(format, v...)
if l.onRemote {
go l.sendToRemote("INFO", l.name, out)
}
l.infoLogger.Output(2, out)
}
l.outputf(vars.INFO, format, v...)
}
// Warn 输出警告
func (l *Logger) Warn(v ...any) {
if l.level <= vars.WARN {
l.checkAndRotateLog()
out := fmt.Sprint(v...)
if l.onRemote {
go l.sendToRemote("WARN", l.name, out)
}
l.warnLogger.Output(2, out)
}
l.output(vars.WARN, fmt.Sprint(v...), false)
}
// Warnf 格式化输出警告
func (l *Logger) Warnf(format string, v ...any) {
if l.level <= vars.WARN {
l.checkAndRotateLog()
out := fmt.Sprintf(format, v...)
if l.onRemote {
go l.sendToRemote("WARN", l.name, out)
}
l.warnLogger.Output(2, out)
}
l.outputf(vars.WARN, format, v...)
}
// Error 输出错误
func (l *Logger) Error(v ...any) {
if l.level <= vars.ERROR {
l.checkAndRotateLog()
out := fmt.Sprint(v...)
if l.onRemote {
go l.sendToRemote("ERROR", l.name, out)
}
l.errorLogger.Output(2, out)
}
l.output(vars.ERROR, fmt.Sprint(v...), false)
}
// Errorf 格式化输出错误
func (l *Logger) Errorf(format string, v ...any) {
if l.level <= vars.ERROR {
l.checkAndRotateLog()
out := fmt.Sprintf(format, v...)
if l.onRemote {
go l.sendToRemote("ERROR", l.name, out)
}
l.errorLogger.Output(2, out)
}
l.outputf(vars.ERROR, format, v...)
}
// Fatal 输出致命错误并退出程序
func (l *Logger) Fatal(v ...any) {
l.checkAndRotateLog()
out := fmt.Sprint(v...)
if l.onRemote {
go l.sendToRemote("FATAL", l.name, out)
}
l.fatalLogger.Output(2, out)
os.Exit(1)
l.output(vars.ERROR, fmt.Sprint(v...), true)
}
// Fatalf 格式化输出致命错误并退出程序
func (l *Logger) Fatalf(format string, v ...any) {
l.checkAndRotateLog()
out := fmt.Sprintf(format, v...)
if l.onRemote {
go l.sendToRemote("FATAL", l.name, out)
}
l.fatalLogger.Output(2, out)
os.Exit(1)
l.output(vars.ERROR, fmt.Sprintf(format, v...), true)
}
// Print 输出信息兼容标准log包
@@ -325,95 +297,64 @@ func (l *Logger) Close() error {
// 全局日志函数兼容标准log包
// Debug 全局调试日志
// Global logger functions.
func withGlobalLogger(fn func(*Logger)) {
if globalLogger != nil {
fn(globalLogger)
}
}
func Debug(v ...any) {
if globalLogger != nil {
globalLogger.Debug(v...)
}
withGlobalLogger(func(l *Logger) { l.Debug(v...) })
}
// Debugf 全局调试日志
func Debugf(format string, v ...any) {
if globalLogger != nil {
globalLogger.Debugf(format, v...)
}
withGlobalLogger(func(l *Logger) { l.Debugf(format, v...) })
}
// Info 全局信息日志
func Info(v ...any) {
if globalLogger != nil {
globalLogger.Info(v...)
}
withGlobalLogger(func(l *Logger) { l.Info(v...) })
}
// Infof 全局信息日志
func Infof(format string, v ...any) {
if globalLogger != nil {
globalLogger.Infof(format, v...)
}
withGlobalLogger(func(l *Logger) { l.Infof(format, v...) })
}
// Warn 全局警告日志
func Warn(v ...any) {
if globalLogger != nil {
globalLogger.Warn(v...)
}
withGlobalLogger(func(l *Logger) { l.Warn(v...) })
}
// Warnf 全局警告日志
func Warnf(format string, v ...any) {
if globalLogger != nil {
globalLogger.Warnf(format, v...)
}
withGlobalLogger(func(l *Logger) { l.Warnf(format, v...) })
}
// Error 全局错误日志
func Error(v ...any) {
if globalLogger != nil {
globalLogger.Error(v...)
}
withGlobalLogger(func(l *Logger) { l.Error(v...) })
}
// Errorf 全局错误日志
func Errorf(format string, v ...any) {
if globalLogger != nil {
globalLogger.Errorf(format, v...)
}
withGlobalLogger(func(l *Logger) { l.Errorf(format, v...) })
}
// Fatal 全局致命错误日志
func Fatal(v ...any) {
if globalLogger != nil {
globalLogger.Fatal(v...)
}
withGlobalLogger(func(l *Logger) { l.Fatal(v...) })
}
// Fatalf 全局致命错误日志
func Fatalf(format string, v ...any) {
if globalLogger != nil {
globalLogger.Fatalf(format, v...)
}
withGlobalLogger(func(l *Logger) { l.Fatalf(format, v...) })
}
// Print 全局打印日志兼容标准log包
func Print(v ...any) {
if globalLogger != nil {
globalLogger.Print(v...)
}
withGlobalLogger(func(l *Logger) { l.Print(v...) })
}
// Printf 全局打印日志兼容标准log包
func Printf(format string, v ...any) {
if globalLogger != nil {
globalLogger.Printf(format, v...)
}
withGlobalLogger(func(l *Logger) { l.Printf(format, v...) })
}
// Println 全局打印日志兼容标准log包
func Println(v ...any) {
if globalLogger != nil {
globalLogger.Println(v...)
}
withGlobalLogger(func(l *Logger) { l.Println(v...) })
}
// GetLogger 获取全局日志器实例