From ba61b305b327347706a394d7b71c3f669c857ba5 Mon Sep 17 00:00:00 2001 From: cleitonme Date: Fri, 6 Mar 2026 08:51:13 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20op=C3=A7=C3=A3o=20de=20n=C3=ADvel=20?= =?UTF-8?q?de=20log=20e=20configura=C3=A7=C3=A3o=20via=20env=20nos=20scrip?= =?UTF-8?q?ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.sample | 3 +++ README.md | 1 + docker-compose-swarm.yaml | 1 + docker-compose.yml | 1 + main.go | 23 +++++++++++++++++++++++ 5 files changed, 29 insertions(+) diff --git a/.env.sample b/.env.sample index 95baa0a9..c4162e8f 100644 --- a/.env.sample +++ b/.env.sample @@ -21,6 +21,9 @@ WEBHOOK_FORMAT=json # WuzAPI Session Configuration SESSION_DEVICE_NAME=WuzAPI +# Logging configuration +LOG_LEVEL=info # debug, info, warn, error + # Database configuration DB_USER=wuzapi DB_PASSWORD=wuzapi diff --git a/README.md b/README.md index fcfb0624..f8c99d90 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ you can use to alter behaviour * -address : sets the IP address to bind the server to (default 0.0.0.0) * -port : sets the port number (default 8080) * -logtype : format for logs, either console (default) or json +* -loglevel : sets log level: debug, info (default), warn, error * -color : enable colored output for console logs * -osname : Connection OS Name in Whatsapp * -skipmedia : Skip downloading media from messages diff --git a/docker-compose-swarm.yaml b/docker-compose-swarm.yaml index 9e06c927..93273ddb 100644 --- a/docker-compose-swarm.yaml +++ b/docker-compose-swarm.yaml @@ -16,6 +16,7 @@ services: - TZ=${TZ:-America/Sao_Paulo} - WEBHOOK_FORMAT=${WEBHOOK_FORMAT:-json} - SESSION_DEVICE_NAME=${SESSION_DEVICE_NAME:-WuzAPI} + - LOG_LEVEL=info # RabbitMQ configuration Optional - RABBITMQ_URL=amqp://wuzapi:wuzapi@rabbitmq:5672/ - RABBITMQ_QUEUE=whatsapp_events diff --git a/docker-compose.yml b/docker-compose.yml index 66731838..98b76400 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,7 @@ services: - TZ=${TZ:-America/Sao_Paulo} - WEBHOOK_FORMAT=${WEBHOOK_FORMAT:-json} - SESSION_DEVICE_NAME=${SESSION_DEVICE_NAME:-WuzAPI} + - LOG_LEVEL=info # RabbitMQ configuration Optional - RABBITMQ_URL=amqp://wuzapi:wuzapi@rabbitmq:5672/ - RABBITMQ_QUEUE=whatsapp_events diff --git a/main.go b/main.go index b0502240..aa97c1e6 100755 --- a/main.go +++ b/main.go @@ -49,6 +49,7 @@ var ( port = flag.String("port", "8080", "Listen Port") waDebug = flag.String("wadebug", "", "Enable whatsmeow debug (INFO or DEBUG)") logType = flag.String("logtype", "console", "Type of log output (console or json)") + logLevel = flag.String("loglevel", "info", "Log level (debug, info, warn, error)") skipMedia = flag.Bool("skipmedia", false, "Do not attempt to download media in messages") osName = flag.String("osname", "Mac OS 10", "Connection OSName in Whatsapp") colorOutput = flag.Bool("color", false, "Enable colored output for console logs") @@ -180,6 +181,28 @@ func main() { flag.Parse() + // Configure log level from environment variable if set + if v := os.Getenv("LOG_LEVEL"); v != "" { + *logLevel = v + } + + // Set global log level + switch strings.ToLower(*logLevel) { + case "debug": + zerolog.SetGlobalLevel(zerolog.DebugLevel) + log.Debug().Msg("Log level set to DEBUG") + case "info": + zerolog.SetGlobalLevel(zerolog.InfoLevel) + case "warn", "warning": + zerolog.SetGlobalLevel(zerolog.WarnLevel) + case "error": + zerolog.SetGlobalLevel(zerolog.ErrorLevel) + default: + zerolog.SetGlobalLevel(zerolog.InfoLevel) + log.Warn().Str("invalid_level", *logLevel).Msg("Invalid log level, defaulting to INFO") + *logLevel = "info" + } + // Check for address in environment variable if flag is default or empty if *address == "0.0.0.0" || *address == "" { if v := os.Getenv("WUZAPI_ADDRESS"); v != "" {