mirror of
https://github.com/StanGirard/quivr.git
synced 2024-12-12 11:26:07 +03:00
ba5ef60362
# Description Please include a summary of the changes and the related issue. Please also include relevant motivation and context. ## Checklist before requesting a review Please delete options that are not relevant. - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented hard-to-understand areas - [ ] I have ideally added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged ## Screenshots (if appropriate):
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
import logging
|
|
from logging.handlers import RotatingFileHandler
|
|
|
|
from colorlog import (
|
|
ColoredFormatter,
|
|
) # You need to install this package: pip install colorlog
|
|
|
|
|
|
def get_logger(logger_name, log_level=logging.INFO, log_file="application.log"):
|
|
logger = logging.getLogger(logger_name)
|
|
logger.setLevel(log_level)
|
|
logger.propagate = False # Prevent log propagation to avoid double logging
|
|
|
|
formatter = logging.Formatter(
|
|
"[%(levelname)s] %(name)s [%(filename)s:%(lineno)d]: %(message)s"
|
|
)
|
|
|
|
color_formatter = ColoredFormatter(
|
|
"%(log_color)s[%(levelname)s]%(reset)s %(name)s [%(filename)s:%(lineno)d]: %(message)s",
|
|
log_colors={
|
|
"DEBUG": "cyan",
|
|
"INFO": "green",
|
|
"WARNING": "yellow",
|
|
"ERROR": "red",
|
|
"CRITICAL": "red,bg_white",
|
|
},
|
|
reset=True,
|
|
style="%",
|
|
)
|
|
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setFormatter(color_formatter)
|
|
|
|
file_handler = RotatingFileHandler(
|
|
log_file, maxBytes=5000000, backupCount=5
|
|
) # 5MB file
|
|
file_handler.setFormatter(formatter)
|
|
|
|
if not logger.handlers:
|
|
logger.addHandler(console_handler)
|
|
logger.addHandler(file_handler)
|
|
|
|
return logger
|