12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package logger
- import (
- "os"
- "github.com/sirupsen/logrus"
- )
- // Fields type for structured logging
- type Fields logrus.Fields
- var (
- // defaultLogger is the default logger instance
- defaultLogger = logrus.New()
- )
- func init() {
- // Set default configuration
- defaultLogger.SetOutput(os.Stdout)
- defaultLogger.SetLevel(logrus.InfoLevel)
- defaultLogger.SetFormatter(&logrus.TextFormatter{
- FullTimestamp: true,
- })
- }
- // Configure sets up the global logger configuration
- func Configure(level string, noColor, forceColors, inJSON bool) error {
- // Set log level
- if level != "" {
- lvl, err := logrus.ParseLevel(level)
- if err != nil {
- return err
- }
- defaultLogger.SetLevel(lvl)
- }
- // Configure formatter
- if inJSON {
- defaultLogger.SetFormatter(&logrus.JSONFormatter{})
- } else {
- defaultLogger.SetFormatter(&logrus.TextFormatter{
- ForceColors: forceColors,
- DisableColors: noColor,
- FullTimestamp: true,
- })
- }
- return nil
- }
- // NewLogger creates a new logger entry with component field
- func NewLogger(component string) *logrus.Entry {
- return defaultLogger.WithField("component", component)
- }
- // WithRequestID adds request ID to the logger entry
- func WithRequestID(logger *logrus.Entry, requestID string) *logrus.Entry {
- return logger.WithField("request_id", requestID)
- }
- // GetLogger returns the default logger instance
- func GetLogger() *logrus.Logger {
- return defaultLogger
- }
|