add monitoring #4

Open
alexandvvvvv wants to merge 13 commits from feature/mntr into main
2 changed files with 25 additions and 16 deletions
Showing only changes of commit b2fe26fe96 - Show all commits

View File

@@ -50,15 +50,12 @@ func InitLogger(config *Config) error {
multiWriter := io.MultiWriter(os.Stdout, file) multiWriter := io.MultiWriter(os.Stdout, file)
Logger.SetOutput(multiWriter) Logger.SetOutput(multiWriter)
// Add default fields // Log initialization with default fields
Logger = Logger.WithFields(logrus.Fields{ Logger.WithFields(logrus.Fields{
"service": "counter-app", "service": "counter-app",
"environment": string(config.Environment), "environment": string(config.Environment),
"version": "1.0.0", "version": "1.0.0",
}).Logger }).Info("Logger initialized successfully")
// Log initialization
Logger.Info("Logger initialized successfully")
return nil return nil
} }
@@ -75,11 +72,23 @@ func GetLogger() *logrus.Logger {
return 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 // 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 { return gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
// Create structured log entry // Create structured log entry with default fields
entry := Logger.WithFields(logrus.Fields{ entry := Logger.WithFields(logrus.Fields{
"service": "counter-app",
"environment": string(config.Environment),
"version": "1.0.0",
"method": param.Method, "method": param.Method,
"path": param.Path, "path": param.Path,
"status": param.StatusCode, "status": param.StatusCode,

View File

@@ -52,7 +52,7 @@ func main() {
r.Use(MetricsMiddleware()) r.Use(MetricsMiddleware())
// Add logging middleware // Add logging middleware
r.Use(LoggingMiddleware()) r.Use(LoggingMiddleware(config))
// Health check endpoint // Health check endpoint
r.GET("/health", func(c *gin.Context) { r.GET("/health", func(c *gin.Context) {