2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 06:40:59 +08:00
Files
panel/internal/bootstrap/logger.go
2024-10-28 20:18:25 +08:00

41 lines
812 B
Go

package bootstrap
import (
"log/slog"
"path/filepath"
"time"
"go.uber.org/zap"
"go.uber.org/zap/exp/zapslog"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
"github.com/TheTNB/panel/internal/app"
)
func initLogger() {
writeSyncer := zapcore.AddSync(&lumberjack.Logger{
Filename: filepath.Join(app.Root, "panel/storage/logs/app.log"),
MaxSize: 10,
MaxAge: 30,
Compress: true,
})
level := zap.InfoLevel
if app.Conf.Bool("app.debug") {
level = zap.DebugLevel
}
config := zap.NewProductionEncoderConfig()
config.EncodeTime = zapcore.TimeEncoderOfLayout(time.DateTime)
core := zapcore.NewCore(
zapcore.NewJSONEncoder(config),
writeSyncer,
level,
)
logger := zap.New(core)
zap.ReplaceGlobals(logger)
app.Logger = slog.New(zapslog.NewHandler(logger.Core()))
}