41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
import logging
|
|
from rich.logging import RichHandler
|
|
|
|
def setup_logging(
|
|
log_filename: str = "menu.log",
|
|
console_log_level: int = logging.DEBUG,
|
|
file_log_level: int = logging.DEBUG,
|
|
):
|
|
"""Set up logging configuration with separate console and file handlers."""
|
|
root_logger = logging.getLogger()
|
|
root_logger.setLevel(logging.WARNING)
|
|
|
|
if root_logger.hasHandlers():
|
|
root_logger.handlers.clear()
|
|
|
|
console_handler = RichHandler(
|
|
rich_tracebacks=True,
|
|
show_time=True,
|
|
show_level=True,
|
|
show_path=False,
|
|
markup=True,
|
|
log_time_format="[%Y-%m-%d %H:%M:%S]",
|
|
)
|
|
console_handler.setLevel(console_log_level)
|
|
|
|
file_handler = logging.FileHandler(log_filename)
|
|
file_handler.setLevel(file_log_level)
|
|
file_formatter = logging.Formatter(
|
|
"%(asctime)s [%(name)s] [%(levelname)s] %(message)s",
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
)
|
|
file_handler.setFormatter(file_formatter)
|
|
|
|
root_logger.addHandler(console_handler)
|
|
root_logger.addHandler(file_handler)
|
|
|
|
menu_logger = logging.getLogger("menu")
|
|
menu_logger.setLevel(console_log_level)
|
|
|
|
menu_logger.propagate = True
|