Skip to content

Commit c5e3a24

Browse files
authored
Fix errorlevel set for single apps (#983)
* Fix errorlevel set for single apps (AI generated) **Suggested PR Comment:** This PR ensures that the logger's level is set to the lowest handler level specified in the `LOGGERS` configuration. Previously, even if a handler was set to `DEBUG`, the logger itself could filter out lower-level messages (like `DEBUG`), resulting in missing log output. By explicitly setting `root.setLevel(min_level)`, all messages at or above the configured level are processed and passed to the handlers as expected. * Prevent double logging with same name to root logger
1 parent c3d7a6f commit c5e3a24

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

py4web/server_adapters/logging_utils.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,28 @@ def make_logger(name, loggers_info):
2424
root = logging.getLogger(name)
2525
list(map(root.removeHandler, root.handlers))
2626
list(map(root.removeFilter, root.filters))
27+
min_level = logging.CRITICAL
2728
for logger in loggers_info:
2829
logger += ":stderr" if logger.count(":") == 0 else ""
2930
logger += ":" if logger.count(":") == 1 else ""
3031
level, filename, formatter = logger.split(":", 2)
3132
if not formatter:
3233
formatter = default_formatter
34+
handler_level = getattr(logging, level.upper(), logging.DEBUG)
35+
if handler_level < min_level:
36+
min_level = handler_level
3337
if filename in ("stdout", "stderr"):
3438
handler = logging.StreamHandler(getattr(sys, filename))
3539
else:
3640
handler = logging.FileHandler(filename)
3741
handler.setFormatter(logging.Formatter(formatter))
38-
handler.setLevel(getattr(logging, level.upper(), "DEBUG"))
42+
handler.setLevel(handler_level)
3943
root.addHandler(handler)
44+
# Set the logger's level to the lowest handler level found.
45+
# This ensures that all messages at or above this level are processed by the logger,
46+
# and not filtered out before reaching the handlers.
47+
root.setLevel(min_level)
48+
root.propagate = False # Prevent double logging with same name to root logger
4049
return root
4150

4251

0 commit comments

Comments
 (0)