Big Code Refactor
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import logging
|
||||
import sys
|
||||
|
||||
class WarningFilter(logging.Filter):
|
||||
def filter(self, record):
|
||||
if record.levelno == logging.WARNING:
|
||||
record.msg = f"Warn!: {record.msg}"
|
||||
return True
|
||||
|
||||
def create_handler(stream, levels, formatter):
|
||||
handler = logging.StreamHandler(stream)
|
||||
handler.setLevel(min(levels))
|
||||
handler.addFilter(lambda record: record.levelno in levels)
|
||||
handler.addFilter(WarningFilter()) # Apply the custom filter
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
return handler
|
||||
def setup_logger(logger_name, level, stdout_levels, stderr_levels, formatter):
|
||||
logger = logging.getLogger(logger_name)
|
||||
for handler in logger.handlers[:]:
|
||||
logger.removeHandler(handler)
|
||||
logger.setLevel(level)
|
||||
stdout_handler = create_handler(sys.stdout, stdout_levels, formatter)
|
||||
stderr_handler = create_handler(sys.stderr, stderr_levels, formatter)
|
||||
logger.addHandler(stdout_handler)
|
||||
logger.addHandler(stderr_handler)
|
||||
Reference in New Issue
Block a user