magic/pkg/loggerx/logger.go
2026-03-28 19:25:12 +08:00

49 lines
929 B
Go

package loggerx
import (
"fmt"
"gitea.micah.wiki/pandora/naive/pkg/filex"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
var (
nameNginx = "nginx"
nameAcmeSh = "acme.sh"
logger *zap.SugaredLogger
)
func Sync() {
if logger != nil {
_ = logger.Sync()
}
}
func Nginx() *zap.SugaredLogger {
return getLogger(nameNginx)
}
func AcmeSh() *zap.SugaredLogger {
return getLogger(nameAcmeSh)
}
func getLogger(name string) *zap.SugaredLogger {
if logger != nil {
return logger.Named(name)
}
homeDir, err := filex.HomeDir()
if err != nil {
panic(err)
}
loggerFile := fmt.Sprintf("%s/.magic/logs.log", homeDir)
file, err := filex.CreateIfNotExists(loggerFile)
if err != nil {
panic(err)
}
writeSyncer := zapcore.AddSync(file)
core := zapcore.NewCore(zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()), writeSyncer, zapcore.DebugLevel)
logger = zap.New(core).Sugar()
return logger.Named(name)
}