removed configure_logging in favor of dsqls logging
This commit is contained in:
1 parent
5e935338bc
commit
ab4e2832d3
1 file changed
-51
@@ -1,17 +1,14 @@
|
||||
import logging
|
||||
import json
|
||||
import os
|
||||
import pathlib
|
||||
from functools import cache
|
||||
from enum import Enum
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
from monitor_utils.src.constants import (
|
||||
PROXIES_PATH,
|
||||
PROJECT_ROOT,
|
||||
PRODUCTION_BOT_TOKEN,
|
||||
DEVELOPMENT_BOT_TOKEN,
|
||||
LOGGING_LEVEL,
|
||||
)
|
||||
|
||||
RESERVED = frozenset(logging.LogRecord("", 0, "", 0, "", (), None).__dict__)
|
||||
@@ -22,54 +19,6 @@ class DevelopmentMode(str, Enum):
|
||||
DEVELOPMENT = "DEVELOPMENT"
|
||||
|
||||
|
||||
class JSONFormatter(logging.Formatter):
|
||||
def format(self, record: logging.LogRecord) -> str:
|
||||
payload = {
|
||||
"time": self.formatTime(record),
|
||||
"level": record.levelname,
|
||||
"logger": record.name,
|
||||
"function": record.funcName,
|
||||
"message": record.getMessage(),
|
||||
}
|
||||
for key, value in record.__dict__.items():
|
||||
if key not in RESERVED and not key.startswith("_"):
|
||||
payload[key] = value
|
||||
|
||||
if record.exc_info:
|
||||
payload["exc"] = self.formatException(record.exc_info)
|
||||
|
||||
return json.dumps(payload)
|
||||
|
||||
|
||||
def configure_logging(monitor_name: str, log_dir: str = "/logs"):
|
||||
os.makedirs(log_dir, exist_ok=True)
|
||||
handler = logging.StreamHandler()
|
||||
handler.setFormatter(JSONFormatter())
|
||||
|
||||
def inject_monitor(record: logging.LogRecord) -> bool:
|
||||
record.monitor_name = monitor_name
|
||||
return True
|
||||
|
||||
handler.addFilter(inject_monitor)
|
||||
|
||||
file_handler = RotatingFileHandler(
|
||||
f"{log_dir}/{monitor_name}.jsonl",
|
||||
maxBytes=10 * 1024 * 1024,
|
||||
backupCount=5,
|
||||
)
|
||||
file_handler.setFormatter(JSONFormatter())
|
||||
file_handler.addFilter(inject_monitor)
|
||||
|
||||
root = logging.getLogger()
|
||||
root.handlers.clear()
|
||||
root.setLevel(LOGGING_LEVEL)
|
||||
root.addHandler(handler)
|
||||
root.addHandler(file_handler)
|
||||
|
||||
logging.getLogger("aiohttp").setLevel(logging.WARNING)
|
||||
logging.getLogger("pymongo").setLevel(logging.WARNING)
|
||||
|
||||
|
||||
def is_production(development_mode: DevelopmentMode) -> bool:
|
||||
return development_mode == DevelopmentMode.PRODUCTION
|
||||
|
||||
|
||||
Reference in new issue
Block a user