mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-10 18:05:48 +02:00
103 lines
2.4 KiB
Go
103 lines
2.4 KiB
Go
package logger
|
|
|
|
import (
|
|
"github.com/0xJacky/Nginx-UI/settings"
|
|
"github.com/gin-gonic/gin"
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
"os"
|
|
)
|
|
|
|
var logger *zap.SugaredLogger
|
|
|
|
func init() {
|
|
// First, define our level-handling logic.
|
|
highPriority := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
|
|
return lvl >= zapcore.ErrorLevel
|
|
})
|
|
lowPriority := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
|
|
switch settings.ServerSettings.RunMode {
|
|
case gin.ReleaseMode:
|
|
return lvl >= zapcore.InfoLevel && lvl < zapcore.ErrorLevel
|
|
default:
|
|
fallthrough
|
|
case gin.DebugMode:
|
|
return lvl < zapcore.ErrorLevel
|
|
}
|
|
})
|
|
|
|
// Directly output to stdout and stderr, and add caller information.
|
|
consoleDebugging := zapcore.Lock(os.Stdout)
|
|
consoleErrors := zapcore.Lock(os.Stderr)
|
|
encoderConfig := zap.NewDevelopmentEncoderConfig()
|
|
encoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
|
|
encoderConfig.ConsoleSeparator = "\t"
|
|
encoderConfig.EncodeLevel = colorLevelEncoder
|
|
consoleEncoder := zapcore.NewConsoleEncoder(encoderConfig)
|
|
|
|
// Join the outputs, encoders, and level-handling functions into
|
|
// zapcore.Cores, then tee the two cores together.
|
|
core := zapcore.NewTee(
|
|
zapcore.NewCore(consoleEncoder, consoleErrors, highPriority),
|
|
zapcore.NewCore(consoleEncoder, consoleDebugging, lowPriority),
|
|
)
|
|
|
|
// From a zapcore.Core, it's easy to construct a Logger.
|
|
logger = zap.New(core, zap.AddCaller()).WithOptions(zap.AddCallerSkip(1)).Sugar()
|
|
}
|
|
|
|
func Sync() {
|
|
_ = logger.Sync()
|
|
}
|
|
|
|
func GetLogger() *zap.SugaredLogger {
|
|
return logger
|
|
}
|
|
|
|
func Info(args ...interface{}) {
|
|
logger.Infoln(args...)
|
|
}
|
|
|
|
func Error(args ...interface{}) {
|
|
logger.Errorln(args...)
|
|
}
|
|
|
|
func Fatal(args ...interface{}) {
|
|
logger.Fatalln(args...)
|
|
}
|
|
|
|
func Warn(args ...interface{}) {
|
|
logger.Warnln(args...)
|
|
}
|
|
|
|
func Debug(args ...interface{}) {
|
|
logger.Debugln(args...)
|
|
}
|
|
|
|
func DPanic(args ...interface{}) {
|
|
logger.DPanic(args...)
|
|
}
|
|
|
|
func Infof(format string, args ...interface{}) {
|
|
logger.Infof(format, args...)
|
|
}
|
|
|
|
func Errorf(format string, args ...interface{}) {
|
|
logger.Errorf(format, args...)
|
|
}
|
|
|
|
func Fatalf(format string, args ...interface{}) {
|
|
logger.Fatalf(format, args...)
|
|
}
|
|
|
|
func DPanicf(format string, args ...interface{}) {
|
|
logger.DPanicf(format, args...)
|
|
}
|
|
|
|
func Warnf(format string, args ...interface{}) {
|
|
logger.Warnf(format, args...)
|
|
}
|
|
|
|
func Debugf(format string, args ...interface{}) {
|
|
logger.Debugf(format, args...)
|
|
}
|