diff --git a/logger.go b/logger.go index a8455f6..01f8f09 100644 --- a/logger.go +++ b/logger.go @@ -50,15 +50,12 @@ func InitLogger(config *Config) error { multiWriter := io.MultiWriter(os.Stdout, file) Logger.SetOutput(multiWriter) - // Add default fields - Logger = Logger.WithFields(logrus.Fields{ + // Log initialization with default fields + Logger.WithFields(logrus.Fields{ "service": "counter-app", "environment": string(config.Environment), "version": "1.0.0", - }).Logger - - // Log initialization - Logger.Info("Logger initialized successfully") + }).Info("Logger initialized successfully") return nil } @@ -75,18 +72,30 @@ func GetLogger() *logrus.Logger { return Logger } +// GetLoggerWithDefaults returns a logger entry with default fields +func GetLoggerWithDefaults(env Environment) *logrus.Entry { + return Logger.WithFields(logrus.Fields{ + "service": "counter-app", + "environment": string(env), + "version": "1.0.0", + }) +} + // LoggingMiddleware creates a Gin middleware for HTTP request logging -func LoggingMiddleware() gin.HandlerFunc { +func LoggingMiddleware(config *Config) gin.HandlerFunc { return gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string { - // Create structured log entry + // Create structured log entry with default fields entry := Logger.WithFields(logrus.Fields{ - "method": param.Method, - "path": param.Path, - "status": param.StatusCode, - "latency": param.Latency.String(), - "client_ip": param.ClientIP, - "user_agent": param.Request.UserAgent(), - "timestamp": param.TimeStamp.Format(time.RFC3339), + "service": "counter-app", + "environment": string(config.Environment), + "version": "1.0.0", + "method": param.Method, + "path": param.Path, + "status": param.StatusCode, + "latency": param.Latency.String(), + "client_ip": param.ClientIP, + "user_agent": param.Request.UserAgent(), + "timestamp": param.TimeStamp.Format(time.RFC3339), }) // Set log level based on status code diff --git a/main.go b/main.go index 1eafcef..d09d4c3 100644 --- a/main.go +++ b/main.go @@ -52,7 +52,7 @@ func main() { r.Use(MetricsMiddleware()) // Add logging middleware - r.Use(LoggingMiddleware()) + r.Use(LoggingMiddleware(config)) // Health check endpoint r.GET("/health", func(c *gin.Context) {