diff --git a/logger.py b/logger.py new file mode 100644 index 0000000..34df0d6 --- /dev/null +++ b/logger.py @@ -0,0 +1,32 @@ +import logging +import sys +import requests +from urllib.parse import urlparse +from typing import Dict, Any, Optional, Tuple + +# Initialize logger +logger = logging.getLogger("proxy_debug") +logger.setLevel(logging.DEBUG) +logger.propagate = False + +formatter = logging.Formatter( + "[{asctime}] PROXY DEBUG: {message}", datefmt="%Y-%m-%d %H:%M:%S", style="{" +) + +try: + file_handler = logging.FileHandler("/tmp/proxy_debug.log") + file_handler.setFormatter(formatter) + logger.addHandler(file_handler) +except OSError as e: + stream_handler = logging.StreamHandler(sys.stderr) + stream_handler.setFormatter(formatter) + logger.addHandler(stream_handler) + logger.error(f"Failed to configure file logger: {e}") + + +def debug_log(message: str) -> None: + """ + Appends a timestamped debug message. + Utilizes the standard logging module for thread safety. + """ + logger.debug(message) diff --git a/utils.py b/utils.py index 6352363..3fc7058 100644 --- a/utils.py +++ b/utils.py @@ -3,24 +3,7 @@ from urllib.parse import urlparse from typing import Dict, Any, Optional, Tuple import datetime - - -def debug_log(message: str) -> None: - """ - Appends a timestamped debug message to /tmp/proxy_debug.log. - Equivalent to PHP error_log with message_type 3. - """ - timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") - log_entry = f"[{timestamp}] PROXY DEBUG: {message}\n" - - try: - with open("/tmp/proxy_debug.log", "a") as f: - f.write(log_entry) - except OSError as e: - # Fallback to stderr if the file is unwritable - import sys - - print(f"Failed to write to log: {e}", file=sys.stderr) +from logger import debug_log def extract_request_context(env: Dict[str, Any]) -> Dict[str, Any]: