Add quiet hours, health checks, and logging
This commit is contained in:
35
services/logging_setup.py
Normal file
35
services/logging_setup.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import logging
|
||||
import os
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
|
||||
|
||||
def setup_logging(cfg: dict) -> None:
|
||||
log_cfg = cfg.get("logging", {})
|
||||
if not log_cfg.get("enabled", True):
|
||||
return
|
||||
|
||||
path = log_cfg.get("path", "/var/server-bot/bot.log")
|
||||
rotate_when = log_cfg.get("rotate_when", "W0")
|
||||
backup_count = int(log_cfg.get("backup_count", 8))
|
||||
level = str(log_cfg.get("level", "INFO")).upper()
|
||||
|
||||
os.makedirs(os.path.dirname(path), exist_ok=True)
|
||||
|
||||
root = logging.getLogger()
|
||||
for handler in root.handlers:
|
||||
if isinstance(handler, TimedRotatingFileHandler) and handler.baseFilename == path:
|
||||
return
|
||||
|
||||
handler = TimedRotatingFileHandler(
|
||||
path,
|
||||
when=rotate_when,
|
||||
interval=1,
|
||||
backupCount=backup_count,
|
||||
encoding="utf-8",
|
||||
utc=True,
|
||||
)
|
||||
formatter = logging.Formatter("%(asctime)s\t%(levelname)s\t%(name)s\t%(message)s")
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
root.setLevel(level)
|
||||
root.addHandler(handler)
|
||||
Reference in New Issue
Block a user