Add support for analytics file

This commit is contained in:
Ori Kotek
2024-02-22 13:21:56 +02:00
parent e3dba12fea
commit 4ebac16ff7

View File

@ -5,6 +5,8 @@ from enum import Enum
from loguru import logger
from pr_agent.config_loader import get_settings
class LoggingFormat(str, Enum):
CONSOLE = "CONSOLE"
@ -15,6 +17,10 @@ def json_format(record: dict) -> str:
return record["message"]
def analytics_filter(record: dict) -> bool:
return record.get("extra", {}).get("analytics", False)
def setup_logger(level: str = "INFO", fmt: LoggingFormat = LoggingFormat.CONSOLE):
level: int = logging.getLevelName(level.upper())
if type(level) is not int:
@ -33,6 +39,17 @@ def setup_logger(level: str = "INFO", fmt: LoggingFormat = LoggingFormat.CONSOLE
logger.remove(None)
logger.add(sys.stdout, level=level, colorize=True)
log_file = get_settings().get("CONFIG.ANALYTICS_FILE", "")
if log_file:
logger.add(
log_file,
filter=analytics_filter,
level=level,
format="{message}",
colorize=False,
serialize=True,
)
return logger