| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package log_helper
- import (
- rotatelogs "github.com/lestrrat-go/file-rotatelogs"
- "github.com/sirupsen/logrus"
- easy "github.com/t-tomalak/logrus-easy-formatter"
- "io"
- "os"
- "path"
- "sync"
- "time"
- )
- func NewLogHelper(appName string, level logrus.Level, maxAge time.Duration, rotationTime time.Duration) *logrus.Logger {
- Logger := &logrus.Logger{
- // Out: os.Stderr,
- // Level: logrus.DebugLevel,
- Formatter: &easy.Formatter{
- TimestampFormat: "2006-01-02 15:04:05",
- LogFormat: "[%lvl%]: %time% - %msg%\n",
- },
- }
- nowpath, err := os.Getwd()
- if err != nil {
- panic(err)
- }
- pathRoot := path.Join(nowpath, "Logs")
- fileAbsPath := path.Join(pathRoot, appName+".log")
- // 下面配置日志每隔 X 分钟轮转一个新文件,保留最近 X 分钟的日志文件,多余的自动清理掉。
- writer, _ := rotatelogs.New(
- path.Join(pathRoot, appName+"--%Y%m%d%H%M--.log"),
- rotatelogs.WithLinkName(fileAbsPath),
- rotatelogs.WithMaxAge(maxAge),
- rotatelogs.WithRotationTime(rotationTime),
- )
- Logger.SetLevel(level)
- Logger.SetOutput(io.MultiWriter(os.Stderr, writer))
- return Logger
- }
- func GetLogger() *logrus.Logger {
- logOnce.Do(func() {
- logger = NewLogHelper("ChineseSubFinder", logrus.DebugLevel, time.Duration(7*24)*time.Hour, time.Duration(24)*time.Hour)
- })
- return logger
- }
- var logger *logrus.Logger
- var logOnce sync.Once
|