1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package logger
- import (
- rotatelogs "github.com/lestrrat-go/file-rotatelogs"
- "os"
- "path/filepath"
- "time"
- log "github.com/sirupsen/logrus"
- )
- var globalLogger *log.Logger
- func Initialize(logPath string) error {
-
- if err := os.MkdirAll(filepath.Dir(logPath), os.ModePerm); err != nil {
- return err
- }
-
- writer, err := rotatelogs.New(
- logPath+".%Y%m%d.log",
- rotatelogs.WithMaxAge(3*24*time.Hour),
- rotatelogs.WithRotationTime(24*time.Hour),
- rotatelogs.WithLinkName(logPath),
- rotatelogs.WithClock(rotatelogs.Local),
- )
- if err != nil {
- return err
- }
-
- formatter := &log.JSONFormatter{
- TimestampFormat: time.RFC3339,
- }
-
- logger := log.New()
- logger.SetFormatter(formatter)
- logger.SetLevel(log.InfoLevel)
- logger.SetOutput(writer)
-
- globalLogger = logger
- return nil
- }
- func Get() *log.Logger {
- if globalLogger == nil {
- panic("Logger not initialized")
- }
- return globalLogger
- }
|