Spaces:
Running
Running
""" | |
Logging configuration for the chatbot application. | |
""" | |
import logging | |
import sys | |
import os | |
from datetime import datetime | |
import config | |
def setup_logging(log_to_file=False): | |
"""Configure logging for the application. | |
Args: | |
log_to_file: Whether to log to a file in addition to console | |
""" | |
# Get log level from config | |
log_level_str = config.LOG_LEVEL | |
log_level = getattr(logging, log_level_str.upper(), logging.INFO) | |
# Configure root logger | |
logging.basicConfig( | |
level=log_level, | |
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', | |
handlers=[logging.StreamHandler(sys.stdout)] | |
) | |
# Add file handler if requested | |
if log_to_file: | |
# Create logs directory if it doesn't exist | |
if not os.path.exists('logs'): | |
os.makedirs('logs') | |
# Create a file handler | |
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') | |
file_handler = logging.FileHandler(f'logs/chatbot_{timestamp}.log') | |
file_handler.setLevel(log_level) | |
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')) | |
# Add file handler to root logger | |
logging.getLogger().addHandler(file_handler) | |
# Disable other noisy loggers | |
logging.getLogger('httpx').setLevel(logging.WARNING) | |
# Return logger for the application | |
return logging.getLogger('chatbot') |