55
66import logging
77import os
8+ import sys
89from datetime import datetime
910from logging .handlers import RotatingFileHandler
1011
1314
1415def setup_logging (log_dir : str = LOG_DIR ) -> logging .Logger :
1516 """Setup rotating file + console logging. Returns the 'medigenius' logger."""
16- if not os .path .exists (log_dir ):
17- os .makedirs (log_dir )
18-
1917 _logger = logging .getLogger ("medigenius" )
20- _logger .setLevel (logging .INFO )
2118
2219 # Avoid duplicate handlers on re-import
2320 if _logger .handlers :
2421 return _logger
2522
26- log_file = os .path .join (
27- log_dir , f"medigenius_{ datetime .now ().strftime ('%Y%m%d' )} .log"
28- )
29- file_handler = RotatingFileHandler (log_file , maxBytes = 10 * 1024 * 1024 , backupCount = 5 )
30- file_handler .setLevel (logging .INFO )
23+ # Skip file logging if in test environment
24+ is_testing = "pytest" in sys .modules or os .getenv ("TESTING" ) == "1"
25+
26+ if is_testing :
27+ _logger .setLevel (logging .DEBUG )
28+ else :
29+ _logger .setLevel (logging .INFO )
30+ if not os .path .exists (log_dir ):
31+ os .makedirs (log_dir )
32+
33+ log_file = os .path .join (
34+ log_dir , f"medigenius_{ datetime .now ().strftime ('%Y%m%d' )} .log"
35+ )
36+ file_handler = RotatingFileHandler (log_file , maxBytes = 10 * 1024 * 1024 , backupCount = 5 )
37+ file_handler .setLevel (logging .INFO )
38+ file_handler .setFormatter (logging .Formatter (
39+ "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ,
40+ datefmt = "%Y-%m-%d %H:%M:%S" ,
41+ ))
42+ _logger .addHandler (file_handler )
3143
3244 console_handler = logging .StreamHandler ()
3345 console_handler .setLevel (logging .INFO )
@@ -36,11 +48,9 @@ def setup_logging(log_dir: str = LOG_DIR) -> logging.Logger:
3648 "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ,
3749 datefmt = "%Y-%m-%d %H:%M:%S" ,
3850 )
39- file_handler .setFormatter (formatter )
4051 console_handler .setFormatter (formatter )
41-
42- _logger .addHandler (file_handler )
4352 _logger .addHandler (console_handler )
53+
4454 return _logger
4555
4656
0 commit comments