Files
Charon/backend/internal/logger/logger.go
T

36 lines
808 B
Go

package logger
import (
"io"
"os"
"github.com/sirupsen/logrus"
)
var _log = logrus.New()
// Init initializes the global logger with output writer and debug level.
func Init(debug bool, out io.Writer) {
if out == nil {
out = os.Stdout
}
_log.SetOutput(out)
if debug {
_log.SetLevel(logrus.DebugLevel)
_log.SetFormatter(&logrus.TextFormatter{FullTimestamp: true})
} else {
_log.SetLevel(logrus.InfoLevel)
_log.SetFormatter(&logrus.JSONFormatter{})
}
}
// Log returns a standard logger entry to use across packages.
func Log() *logrus.Entry {
return logrus.NewEntry(_log)
}
// WithFields returns a logger entry with provided fields.
func WithFields(fields logrus.Fields) *logrus.Entry {
return Log().WithFields(fields)
}