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) }