🔧 chore(logger.py): refactor logger configuration to use loguru library and improve log formatting

This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-09-04 11:35:22 -03:00
commit 87eb8b1a95

View file

@ -1,30 +1,34 @@
import logging from loguru import logger
from pathlib import Path from pathlib import Path
from rich.logging import RichHandler from rich.logging import RichHandler
logger = logging.getLogger("langflow")
def configure(log_level: str = "DEBUG", log_file: Path = None):
log_format = "<green>{time:HH:mm:ss}</green> - <level>{level: <8}</level> - <level>{message}</level>"
logger.remove() # Remove default handlers
def configure(log_level: str = "DEBUG", log_file: Path = None): # type: ignore # Configure loguru to use RichHandler
log_format = "%(asctime)s - %(levelname)s - %(message)s" logger.configure(
log_level_value = getattr(logging, log_level.upper(), logging.INFO) handlers=[
{
logging.basicConfig( "sink": RichHandler(rich_tracebacks=True, markup=True),
level=log_level_value, "format": log_format,
format=log_format, "level": log_level,
datefmt="[%X]", }
handlers=[RichHandler(rich_tracebacks=True)], ]
) )
if log_file: if log_file:
log_file = Path(log_file) log_file = Path(log_file)
log_file.parent.mkdir(parents=True, exist_ok=True) log_file.parent.mkdir(parents=True, exist_ok=True)
file_handler = logging.FileHandler(log_file) logger.add(
file_handler.setFormatter(logging.Formatter(log_format)) sink=str(log_file),
logger.addHandler(file_handler) level=log_level,
format=log_format,
rotation="10 MB", # Log rotation based on file size
)
logger.info(f"Logger set up with log level: {log_level_value}({log_level})") logger.info(f"Logger set up with log level: {log_level}")
if log_file: if log_file:
logger.info(f"Log file: {log_file}") logger.info(f"Log file: {log_file}")