2023-06-15 21:22:51 +08:00
|
|
|
//
|
|
|
|
// log.go
|
|
|
|
// Copyright (C) 2022 tiglog <me@tiglog.com>
|
|
|
|
//
|
|
|
|
// Distributed under terms of the MIT license.
|
|
|
|
//
|
|
|
|
|
|
|
|
package logger
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"sync"
|
|
|
|
|
|
|
|
"github.com/natefinch/lumberjack"
|
|
|
|
"github.com/rs/zerolog"
|
|
|
|
)
|
|
|
|
|
|
|
|
var once sync.Once
|
|
|
|
|
|
|
|
var log_path = "./var/log/app.log"
|
|
|
|
|
|
|
|
func SetLogPath(path string) {
|
|
|
|
log_path = path
|
|
|
|
}
|
|
|
|
|
|
|
|
var log *zerolog.Logger
|
|
|
|
|
|
|
|
func Get() *zerolog.Logger {
|
|
|
|
once.Do(func() {
|
|
|
|
|
|
|
|
fileLogger := &lumberjack.Logger{
|
|
|
|
Filename: log_path,
|
|
|
|
MaxSize: 5, //
|
|
|
|
MaxBackups: 10,
|
|
|
|
MaxAge: 14,
|
|
|
|
Compress: true,
|
|
|
|
}
|
|
|
|
|
|
|
|
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
|
|
|
|
|
|
|
l := zerolog.New(output).
|
2023-07-14 16:03:51 +08:00
|
|
|
Level(loggerLevel).
|
2023-06-15 21:22:51 +08:00
|
|
|
With().
|
|
|
|
Timestamp().
|
2023-07-14 16:03:51 +08:00
|
|
|
Stack().
|
2023-07-15 17:52:50 +08:00
|
|
|
CallerWithSkipFrameCount(2).
|
2023-06-15 21:22:51 +08:00
|
|
|
Logger()
|
|
|
|
log = &l
|
|
|
|
})
|
|
|
|
|
|
|
|
return log
|
|
|
|
}
|
|
|
|
|
|
|
|
func Debug(msg string) {
|
|
|
|
Get().Debug().Msg(msg)
|
|
|
|
}
|
|
|
|
func Debugf(format string, v ...interface{}) {
|
|
|
|
Get().Debug().Msgf(format, v...)
|
|
|
|
}
|
|
|
|
func Info(msg string) {
|
|
|
|
Get().Info().Msg(msg)
|
|
|
|
}
|
|
|
|
func Infof(format string, v ...interface{}) {
|
|
|
|
Get().Info().Msgf(format, v...)
|
|
|
|
}
|
|
|
|
func Warn(msg string) {
|
|
|
|
Get().Warn().Msg(msg)
|
|
|
|
}
|
|
|
|
func Warnf(format string, v ...interface{}) {
|
|
|
|
Get().Warn().Msgf(format, v...)
|
|
|
|
}
|
|
|
|
func Error(msg string) {
|
|
|
|
Get().Error().Msg(msg)
|
|
|
|
}
|
|
|
|
func Errorf(format string, v ...interface{}) {
|
|
|
|
Get().Error().Msgf(format, v...)
|
|
|
|
}
|