add monitoring #4
39
logger.go
39
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
|
||||
|
||||
Reference in New Issue
Block a user