From 92bf9fb66a809a8bc71b02b6b815a4b00d56e445 Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Tue, 22 Jul 2025 19:59:07 +0200 Subject: [PATCH] new log handler methods for setting up the logger output implemented --- __init__.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/__init__.py b/__init__.py index b318c21..1edfbf5 100644 --- a/__init__.py +++ b/__init__.py @@ -32,6 +32,7 @@ import collections import json import logging from logging.config import dictConfig +import logging.handlers import os import sys @@ -166,6 +167,37 @@ class JsonFormatter(logging.Formatter): return json.dumps(obj) +def add_handler_stdout(logger: logging.Logger, level: int=logging.WARNING, fmt: str=DEFAULT_FMT): + logger.setLevel(logging.DEBUG) + # + handler = logging.StreamHandler(sys.stdout) + handler.setFormatter(logging.Formatter(fmt)) + handler.setLevel(level) + logger.addHandler(handler) + + +def add_handler_file(logger: logging.Logger, filename: str, maxMbytes: int, backupCount: int, level: int=logging.DEBUG, fmt: str=DEFAULT_FMT): + if maxMbytes < 1: + raise ValueError(f"The parameter maxMbytes needs to be >= 1. maxMbytes={maxMbytes}") + if backupCount < 1: + raise ValueError(f"The parameter backupCount needs to be >= 1. backupCount={backupCount}") + # + logger.setLevel(logging.DEBUG) + # + handler = logging.handlers.RotatingFileHandler(filename, maxBytes=maxMbytes*1048576, backupCount=backupCount) + handler.setFormatter(logging.Formatter(fmt)) + handler.setLevel(level) + logger.addHandler(handler) + + +def add_handler_socket(logger: logging.Logger, level: int=logging.DEBUG, host: str="localhost", port: int=19996): + logger.setLevel(logging.DEBUG) + # + handler = logging.handlers.SocketHandler(host, port) + handler.setLevel(level) + logger.addHandler(handler) + + def appLoggingConfigure(basepath, target, log_name_lvl=[], target_level=logging.DEBUG, fmt=SHORT_FMT, ring_logs=None, host=None, port=None): target_handlers = ['main', ] # define handler @@ -234,6 +266,7 @@ def appLoggingConfigure(basepath, target, log_name_lvl=[], target_level=logging. handlers=handler, loggers=loggers, )) + logger.critical("The method report.appLoggingConfigure is DEPRECIATED... Change to add_handler-* methods") def stdoutLoggingConfigure(log_name_lvl=[], fmt=SHORT_FMT):