new log handler methods for setting up the logger output implemented

This commit is contained in:
Dirk Alders 2025-07-22 19:59:07 +02:00
parent 74e6f20d09
commit 92bf9fb66a

View File

@ -32,6 +32,7 @@ import collections
import json import json
import logging import logging
from logging.config import dictConfig from logging.config import dictConfig
import logging.handlers
import os import os
import sys import sys
@ -166,6 +167,37 @@ class JsonFormatter(logging.Formatter):
return json.dumps(obj) 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): def appLoggingConfigure(basepath, target, log_name_lvl=[], target_level=logging.DEBUG, fmt=SHORT_FMT, ring_logs=None, host=None, port=None):
target_handlers = ['main', ] target_handlers = ['main', ]
# define handler # define handler
@ -234,6 +266,7 @@ def appLoggingConfigure(basepath, target, log_name_lvl=[], target_level=logging.
handlers=handler, handlers=handler,
loggers=loggers, loggers=loggers,
)) ))
logger.critical("The method report.appLoggingConfigure is DEPRECIATED... Change to add_handler-* methods")
def stdoutLoggingConfigure(log_name_lvl=[], fmt=SHORT_FMT): def stdoutLoggingConfigure(log_name_lvl=[], fmt=SHORT_FMT):