id-ocr-engine / logging_config.py
Kevin-KES
Deploy current main to HF Space
50c6ee2
Raw
History Blame Contribute Delete
1.27 kB
import json
import logging
import sys
from datetime import datetime, timezone
class JSONFormatter(logging.Formatter):
def format(self, record):
log_data = {
"timestamp": datetime.now(timezone.utc).isoformat(),
"level": record.levelname,
"logger": record.name,
"message": record.getMessage(),
}
if hasattr(record, "request_id"):
log_data["request_id"] = record.request_id
if record.exc_info and record.exc_info[0]:
log_data["exception"] = self.formatException(record.exc_info)
return json.dumps(log_data)
def setup_logging(log_level="INFO", log_format="json"):
root_logger = logging.getLogger()
root_logger.setLevel(getattr(logging, log_level.upper(), logging.INFO))
handler = logging.StreamHandler(sys.stdout)
if log_format == "json":
handler.setFormatter(JSONFormatter())
else:
handler.setFormatter(logging.Formatter(
"%(asctime)s [%(levelname)s] %(name)s: %(message)s"
))
root_logger.handlers.clear()
root_logger.addHandler(handler)
# Reduce noisy libraries
logging.getLogger("werkzeug").setLevel(logging.WARNING)
logging.getLogger("easyocr").setLevel(logging.WARNING)