@@ -117,21 +117,21 @@ def filter(self, record):
117
117
return True
118
118
119
119
120
- def get_console_handler ():
120
+ def get_console_handler (log_level = logging . INFO ):
121
121
"""Returns a console handler for logging."""
122
122
console_handler = logging .StreamHandler ()
123
- console_handler .setLevel (logging . getLevelName ( LOG_LEVEL ) )
123
+ console_handler .setLevel (log_level )
124
124
console_handler .setFormatter (console_formatter )
125
125
return console_handler
126
126
127
127
128
- def get_file_handler (log_dir ):
128
+ def get_file_handler (log_dir , log_level = logging . INFO ):
129
129
"""Returns a file handler for logging."""
130
130
os .makedirs (log_dir , exist_ok = True )
131
131
timestamp = datetime .now ().strftime ('%Y-%m-%d' )
132
132
file_name = f'openhands_{ timestamp } .log'
133
133
file_handler = logging .FileHandler (os .path .join (log_dir , file_name ))
134
- file_handler .setLevel (logging . getLevelName ( LOG_LEVEL ) )
134
+ file_handler .setLevel (log_level )
135
135
file_handler .setFormatter (file_formatter )
136
136
return file_handler
137
137
@@ -156,32 +156,33 @@ def log_uncaught_exceptions(ex_cls, ex, tb):
156
156
157
157
158
158
sys .excepthook = log_uncaught_exceptions
159
-
160
159
openhands_logger = logging .getLogger ('openhands' )
161
- openhands_logger .setLevel (logging .getLevelName (LOG_LEVEL ))
162
- LOG_DIR = os .path .join (
163
- # parent dir of openhands/core (i.e., root of the repo)
164
- os .path .dirname (os .path .dirname (os .path .dirname (os .path .abspath (__file__ )))),
165
- 'logs' ,
166
- )
160
+ current_log_level = logging .INFO
167
161
168
- if DEBUG :
169
- openhands_logger .setLevel (logging .DEBUG )
162
+ if LOG_LEVEL in logging .getLevelNamesMapping ():
163
+ current_log_level = logging .getLevelNamesMapping ()[LOG_LEVEL ]
164
+ openhands_logger .setLevel (current_log_level )
170
165
171
- if LOG_TO_FILE or DEBUG :
172
- # default log to project root
173
- openhands_logger .debug ('Logging to file is enabled. Logging to %s' , LOG_DIR )
174
- openhands_logger .addHandler (get_file_handler (LOG_DIR ))
166
+ if current_log_level == logging .DEBUG :
167
+ LOG_TO_FILE = True
168
+ openhands_logger .info ('DEBUG mode enabled.' )
175
169
176
- openhands_logger .addHandler (get_console_handler ())
170
+ openhands_logger .addHandler (get_console_handler (current_log_level ))
177
171
openhands_logger .addFilter (SensitiveDataFilter (openhands_logger .name ))
178
172
openhands_logger .propagate = False
179
173
openhands_logger .debug ('Logging initialized' )
180
174
181
- if LOG_TO_FILE or DEBUG :
182
- openhands_logger .info ('Logging to file is enabled. Logging to %s' , LOG_DIR )
183
- if DEBUG :
184
- openhands_logger .info ('DEBUG mode enabled' )
175
+ LOG_DIR = os .path .join (
176
+ # parent dir of openhands/core (i.e., root of the repo)
177
+ os .path .dirname (os .path .dirname (os .path .dirname (os .path .abspath (__file__ )))),
178
+ 'logs' ,
179
+ )
180
+
181
+ if LOG_TO_FILE :
182
+ openhands_logger .addHandler (
183
+ get_file_handler (LOG_DIR , current_log_level )
184
+ ) # default log to project root
185
+ openhands_logger .info (f'Logging to file in: { LOG_DIR } ' )
185
186
186
187
# Exclude LiteLLM from logging output
187
188
logging .getLogger ('LiteLLM' ).disabled = True
@@ -238,7 +239,7 @@ def emit(self, record):
238
239
self .message_counter += 1
239
240
240
241
241
- def _get_llm_file_handler (name , log_level = logging .DEBUG ):
242
+ def _get_llm_file_handler (name , log_level = logging .INFO ):
242
243
# The 'delay' parameter, when set to True, postpones the opening of the log file
243
244
# until the first log message is emitted.
244
245
llm_file_handler = LlmFileHandler (name , delay = True )
@@ -247,7 +248,7 @@ def _get_llm_file_handler(name, log_level=logging.DEBUG):
247
248
return llm_file_handler
248
249
249
250
250
- def _setup_llm_logger (name , log_level = logging .DEBUG ):
251
+ def _setup_llm_logger (name , log_level = logging .INFO ):
251
252
logger = logging .getLogger (name )
252
253
logger .propagate = False
253
254
logger .setLevel (log_level )
@@ -256,5 +257,5 @@ def _setup_llm_logger(name, log_level=logging.DEBUG):
256
257
return logger
257
258
258
259
259
- llm_prompt_logger = _setup_llm_logger ('prompt' , logging . DEBUG )
260
- llm_response_logger = _setup_llm_logger ('response' , logging . DEBUG )
260
+ llm_prompt_logger = _setup_llm_logger ('prompt' , current_log_level )
261
+ llm_response_logger = _setup_llm_logger ('response' , current_log_level )
0 commit comments