Coverage for src/chuck_data/logger.py: 0%

22 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-06-05 22:56 -0700

1import logging 

2import os 

3from datetime import datetime 

4 

5# Global variable to track current session log file 

6_current_log_file = None 

7 

8 

9def setup_logging(): 

10 """Initialize logging system.""" 

11 global _current_log_file 

12 

13 log_dir = os.path.join(os.getcwd(), "log", "sessions") 

14 os.makedirs(log_dir, exist_ok=True) 

15 

16 log_file = os.path.join( 

17 log_dir, f"{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.log" 

18 ) 

19 

20 # Store the current log file path 

21 _current_log_file = log_file 

22 

23 logger = logging.getLogger() 

24 logger.setLevel(logging.DEBUG) 

25 

26 file_handler = logging.FileHandler(log_file) 

27 file_handler.setLevel(logging.DEBUG) 

28 

29 stream_handler = logging.StreamHandler() 

30 stream_handler.setLevel(logging.CRITICAL) 

31 

32 formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") 

33 file_handler.setFormatter(formatter) 

34 stream_handler.setFormatter(formatter) 

35 

36 logger.handlers = [file_handler, stream_handler] 

37 

38 logging.debug("Logging initialized. Writing to %s", log_file) 

39 

40 

41def get_current_log_file(): 

42 """Get the path to the current session's log file.""" 

43 return _current_log_file