49 lines
929 B
Go
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)
|
|
}
|