Files
Yan Xell 956f8aec56
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/tag/ci Pipeline failed
ci/woodpecker/tag/deploy-test Pipeline was successful
prevedi un postgres sql
2026-05-19 15:34:27 +02:00

48 lines
1.2 KiB
Python

import logging
from logging.handlers import TimedRotatingFileHandler
from pathlib import Path
_logger: logging.Logger | None = None
def get_logger() -> logging.Logger:
global _logger
if _logger is None:
_logger = logging.getLogger('rpa_dashboard')
return _logger
def setup_logging(log_dir: Path, backup_count: int = 30) -> logging.Logger:
global _logger
log_dir.mkdir(parents=True, exist_ok=True)
logger = logging.getLogger('rpa_dashboard')
logger.setLevel(logging.INFO)
if logger.handlers:
return logger
fmt = logging.Formatter(
'[%(asctime)s] %(levelname)-5s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
)
# Daily rotation at midnight — keeps last `backup_count` days
# Current day: logs/dashboard.log
# Past days: logs/dashboard.log.YYYY-MM-DD
file_handler = TimedRotatingFileHandler(
log_dir / 'dashboard.log',
when='midnight',
backupCount=backup_count,
encoding='utf-8',
)
file_handler.setFormatter(fmt)
logger.addHandler(file_handler)
console = logging.StreamHandler()
console.setFormatter(fmt)
logger.addHandler(console)
_logger = logger
return logger