Source code for pyArchimate.logger

"""Logging configuration for pyArchimate.

Provides a shared logger instance and functions to configure logging levels,
file handlers, and stderr output.
"""

import logging
from logging.handlers import RotatingFileHandler

log = logging.getLogger()
log.setLevel(logging.WARNING)
formatter = logging.Formatter("%(asctime)s | %(name)s | %(levelname)s | %(message)s")


[docs] def log_set_level(lvl): """ Change the logging level for all handlers at once :param lvl: logging level :type lvl: logging.LEVEL enumeration """ log.setLevel(lvl) for h in log.handlers: if h.name == "file": continue h.setLevel(lvl)
[docs] def log_to_file(log_file): """ Add a log handler to save log to file :param log_file: path to the log file :type log_file: str """ if log_file is not None: handler_file = RotatingFileHandler( log_file, mode="a", maxBytes=200000, backupCount=9, encoding="UTF-8", delay=True ) handler_file.setLevel(logging.WARNING) handler_file.setFormatter(formatter) handler_file.name = "file" log.addHandler(handler_file)
[docs] def log_to_stderr(): """ Add a logging handler to the standard error output """ handler_stdout = logging.StreamHandler() handler_stdout.setLevel(log.level) handler_stdout.setFormatter(formatter) handler_stdout.name = "stderr" log.addHandler(handler_stdout)