Skip to content

Commit ae153aa

Browse files
authored
(enh) review of logger.py; less logging in AgentController (#3648)
* revised logger.py; agent_controller: less debug logging (every second) * agent_controller._step: removed logging upon _pending_action
1 parent fd0fad7 commit ae153aa

File tree

2 files changed

+27
-29
lines changed

2 files changed

+27
-29
lines changed

openhands/controller/agent_controller.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -351,9 +351,6 @@ async def _step(self) -> None:
351351
return
352352

353353
if self._pending_action:
354-
logger.debug(
355-
f'[Agent Controller {self.id}] waiting for pending action: {self._pending_action}'
356-
)
357354
await asyncio.sleep(1)
358355
return
359356

openhands/core/logger.py

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -117,21 +117,21 @@ def filter(self, record):
117117
return True
118118

119119

120-
def get_console_handler():
120+
def get_console_handler(log_level=logging.INFO):
121121
"""Returns a console handler for logging."""
122122
console_handler = logging.StreamHandler()
123-
console_handler.setLevel(logging.getLevelName(LOG_LEVEL))
123+
console_handler.setLevel(log_level)
124124
console_handler.setFormatter(console_formatter)
125125
return console_handler
126126

127127

128-
def get_file_handler(log_dir):
128+
def get_file_handler(log_dir, log_level=logging.INFO):
129129
"""Returns a file handler for logging."""
130130
os.makedirs(log_dir, exist_ok=True)
131131
timestamp = datetime.now().strftime('%Y-%m-%d')
132132
file_name = f'openhands_{timestamp}.log'
133133
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)
135135
file_handler.setFormatter(file_formatter)
136136
return file_handler
137137

@@ -156,32 +156,33 @@ def log_uncaught_exceptions(ex_cls, ex, tb):
156156

157157

158158
sys.excepthook = log_uncaught_exceptions
159-
160159
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
167161

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)
170165

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.')
175169

176-
openhands_logger.addHandler(get_console_handler())
170+
openhands_logger.addHandler(get_console_handler(current_log_level))
177171
openhands_logger.addFilter(SensitiveDataFilter(openhands_logger.name))
178172
openhands_logger.propagate = False
179173
openhands_logger.debug('Logging initialized')
180174

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}')
185186

186187
# Exclude LiteLLM from logging output
187188
logging.getLogger('LiteLLM').disabled = True
@@ -238,7 +239,7 @@ def emit(self, record):
238239
self.message_counter += 1
239240

240241

241-
def _get_llm_file_handler(name, log_level=logging.DEBUG):
242+
def _get_llm_file_handler(name, log_level=logging.INFO):
242243
# The 'delay' parameter, when set to True, postpones the opening of the log file
243244
# until the first log message is emitted.
244245
llm_file_handler = LlmFileHandler(name, delay=True)
@@ -247,7 +248,7 @@ def _get_llm_file_handler(name, log_level=logging.DEBUG):
247248
return llm_file_handler
248249

249250

250-
def _setup_llm_logger(name, log_level=logging.DEBUG):
251+
def _setup_llm_logger(name, log_level=logging.INFO):
251252
logger = logging.getLogger(name)
252253
logger.propagate = False
253254
logger.setLevel(log_level)
@@ -256,5 +257,5 @@ def _setup_llm_logger(name, log_level=logging.DEBUG):
256257
return logger
257258

258259

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

Comments
 (0)