11import logging
22import os
33
4- def setup_logger (name , log_file = 'app.log' , level = logging .DEBUG ):
4+ def setup_logger (name = 'student_logger' , log_file = None , level = logging .DEBUG ):
5+ if log_file is None :
6+ # Use absolute path based on your repo root
7+ repo_root = os .path .abspath (os .path .join (os .path .dirname (__file__ ), '..' ))
8+ log_file = os .path .join (repo_root , 'student_api.log' )
59
10+ # Create logger with specified name
611 logger = logging .getLogger (name )
712 logger .setLevel (level )
8-
9- # Avoid adding multiple handlers if logger already exists
13+
14+ # Avoid multiple handlers added on repeated calls
1015 if not logger .hasHandlers ():
1116 # Console handler
1217 console_handler = logging .StreamHandler ()
1318 console_handler .setLevel (level )
1419 console_formatter = logging .Formatter (
1520 '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
1621 )
17- console_handler .setFormatter (console_formatter )
18- logger .addHandler (console_handler )
19-
22+ console_handler .setFormatter (console_formatter )
23+ logger .addHandler (console_handler )
24+
2025 # File handler
2126 file_handler = logging .FileHandler (log_file )
2227 file_handler .setLevel (level )
@@ -25,5 +30,5 @@ def setup_logger(name, log_file='app.log', level=logging.DEBUG):
2530 )
2631 file_handler .setFormatter (file_formatter )
2732 logger .addHandler (file_handler )
28-
29- return logger
33+
34+ return logger
0 commit comments