Spaces:
Runtime error
Runtime error
| # logger_config.py | |
| # | |
| # Imports | |
| import logging | |
| from logging.handlers import RotatingFileHandler | |
| from pythonjsonlogger import jsonlogger | |
| import os | |
| # | |
| ############################################################################################################ | |
| # | |
| # Functions: | |
| def setup_logger(log_file_path="tldw_app_logs.json"): | |
| """ | |
| Sets up the logger with both StreamHandler and FileHandler, formatted in JSON. | |
| Parameters: | |
| log_file_path (str): Path to the JSON log file. | |
| Returns: | |
| logging.Logger: Configured logger instance. | |
| """ | |
| logger = logging.getLogger("tldw_app_logs") | |
| logger.setLevel(logging.DEBUG) # Set to DEBUG for detailed logs | |
| # Prevent adding multiple handlers if the logger is already configured | |
| if not logger.handlers: | |
| # StreamHandler for console output | |
| stream_handler = logging.StreamHandler() | |
| stream_formatter = jsonlogger.JsonFormatter( | |
| '%(asctime)s %(levelname)s %(name)s event %(event)s type %(type)s value %(value)s labels %(labels)s timestamp %(timestamp)s' | |
| ) | |
| stream_handler.setFormatter(stream_formatter) | |
| logger.addHandler(stream_handler) | |
| # Ensure the directory for log_file_path exists | |
| log_dir = os.path.dirname(log_file_path) | |
| if log_dir and not os.path.exists(log_dir): | |
| os.makedirs(log_dir, exist_ok=True) | |
| # RotatingFileHandler for writing logs to a JSON file with rotation | |
| file_handler = RotatingFileHandler( | |
| log_file_path, maxBytes=10*1024*1024, backupCount=5 # 10 MB per file, keep 5 backups | |
| ) | |
| file_formatter = jsonlogger.JsonFormatter( | |
| '%(asctime)s %(levelname)s %(name)s event %(event)s type %(type)s value %(value)s labels %(labels)s timestamp %(timestamp)s' | |
| ) | |
| file_handler.setFormatter(file_formatter) | |
| logger.addHandler(file_handler) | |
| return logger | |
| # Initialize the logger | |
| logger = setup_logger() | |
| # | |
| # End of Functions | |
| ############################################################################################################ | |