Open-Nursing-Validator / core /logging_config.py
NurseCitizenDeveloper's picture
Deploy Open Nursing Validator (Docker)
6d12932 verified
import logging
import os
from core.settings import settings
def configure_logging():
"""
Configure global logging based on settings.
"""
log_level = getattr(logging, settings.LOG_LEVEL.upper(), logging.INFO)
# Ensure log directory exists if writing to file
log_file = settings.LOG_FILE
log_dir = os.path.dirname(log_file)
if log_dir and not os.path.exists(log_dir):
try:
os.makedirs(log_dir, exist_ok=True)
except OSError:
# Fallback if cannot create directory (e.g. permission issue)
pass
handlers = [logging.StreamHandler()]
# improved file handling logic
try:
handlers.append(logging.FileHandler(log_file))
except (OSError, IOError) as e:
print(f"Warning: Could not set up file logging to {log_file}: {e}")
logging.basicConfig(
level=log_level,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=handlers,
force=True # Overwrite any existing config
)
# Quiet down some noisy libraries
logging.getLogger("azure.core.pipeline.policies.http_logging_policy").setLevel(logging.WARNING)
logging.getLogger("chromadb").setLevel(logging.WARNING)
logger = logging.getLogger(__name__)
logger.info(f"Logging configured at level {settings.LOG_LEVEL}")