mirror of
https://github.com/cexll/myclaude.git
synced 2026-02-05 02:30:26 +08:00
- Move all source files to internal/{app,backend,config,executor,logger,parser,utils}
- Integrate third-party libraries: zerolog, goccy/go-json, gopsutil, cobra/viper
- Add comprehensive unit tests for utils package (94.3% coverage)
- Add performance benchmarks for string operations
- Fix error display: cleanup warnings no longer pollute Recent Errors
- Add GitHub Actions CI workflow
- Add Makefile for build automation
- Add README documentation
Generated with SWE-Agent.ai
Co-Authored-By: SWE-Agent.ai <noreply@swe-agent.ai>
60 lines
1.0 KiB
Go
60 lines
1.0 KiB
Go
package logger
|
|
|
|
import "sync/atomic"
|
|
|
|
var loggerPtr atomic.Pointer[Logger]
|
|
|
|
func setLogger(l *Logger) {
|
|
loggerPtr.Store(l)
|
|
}
|
|
|
|
func closeLogger() error {
|
|
logger := loggerPtr.Swap(nil)
|
|
if logger == nil {
|
|
return nil
|
|
}
|
|
return logger.Close()
|
|
}
|
|
|
|
func activeLogger() *Logger {
|
|
return loggerPtr.Load()
|
|
}
|
|
|
|
func logDebug(msg string) {
|
|
if logger := activeLogger(); logger != nil {
|
|
logger.Debug(msg)
|
|
}
|
|
}
|
|
|
|
func logInfo(msg string) {
|
|
if logger := activeLogger(); logger != nil {
|
|
logger.Info(msg)
|
|
}
|
|
}
|
|
|
|
func logWarn(msg string) {
|
|
if logger := activeLogger(); logger != nil {
|
|
logger.Warn(msg)
|
|
}
|
|
}
|
|
|
|
func logError(msg string) {
|
|
if logger := activeLogger(); logger != nil {
|
|
logger.Error(msg)
|
|
}
|
|
}
|
|
|
|
func SetLogger(l *Logger) { setLogger(l) }
|
|
|
|
func CloseLogger() error { return closeLogger() }
|
|
|
|
func ActiveLogger() *Logger { return activeLogger() }
|
|
|
|
func LogInfo(msg string) { logInfo(msg) }
|
|
|
|
func LogDebug(msg string) { logDebug(msg) }
|
|
|
|
func LogWarn(msg string) { logWarn(msg) }
|
|
|
|
func LogError(msg string) { logError(msg) }
|