DigitalDan / utils /app_logging.py
HallD's picture
Upload 31 files
ad7b82e verified
import logging
import os
def setup_logging():
"""Setup logging for the application."""
global logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Set common formatter
_formatter = logging.Formatter("%(asctime)s %(levelname)s %(name)s: %(message)s")
# Ensure logs appear in terminal even if root isn't configured
_has_console = any(isinstance(h, logging.StreamHandler) and not isinstance(h, logging.FileHandler) for h in logger.handlers)
if not _has_console:
_console_handler = logging.StreamHandler()
_console_handler.setLevel(logging.INFO)
_console_handler.setFormatter(_formatter)
logger.addHandler(_console_handler)
logger.propagate = False
# Ensure logs are also saved to a file next to this script
_log_file = os.path.join(os.path.dirname(__file__), "digital-cv.log")
_has_file = any(isinstance(h, logging.FileHandler) and getattr(h, "baseFilename", "") == _log_file for h in logger.handlers)
if not _has_file:
try:
_file_handler = logging.FileHandler(_log_file)
_file_handler.setLevel(logging.INFO)
_file_handler.setFormatter(_formatter)
logger.addHandler(_file_handler)
except Exception:
# If file handler can't be created, continue with console-only logging
pass
return logger