Skip to content

Commit cb9c5ed

Browse files
Improve logging of bare exceptions and other cleanups. (#922)
1 parent 8a0caf6 commit cb9c5ed

File tree

4 files changed

+26
-26
lines changed

4 files changed

+26
-26
lines changed

jupyter_server/base/handlers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def set_default_headers(self):
9999
# tornado raise Exception (not a subclass)
100100
# if method is unsupported (websocket and Access-Control-Allow-Origin
101101
# for example, so just ignore)
102-
self.log.debug(e)
102+
self.log.exception("Could not set default headers: %s", e)
103103

104104
@property
105105
def cookie_name(self):
@@ -723,7 +723,7 @@ def write_error(self, status_code, **kwargs):
723723
reply["message"] = "Unhandled error"
724724
reply["reason"] = None
725725
reply["traceback"] = "".join(traceback.format_exception(*exc_info))
726-
self.log.warning(reply["message"])
726+
self.log.warning("wrote error: %r", reply["message"])
727727
self.finish(json.dumps(reply))
728728

729729
def get_login_url(self):

jupyter_server/extension/manager.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import importlib
2-
import sys
3-
import traceback
42

53
from tornado.gen import multi
64
from traitlets import Any, Bool, Dict, HasTraits, Instance, Unicode, default, observe
@@ -326,7 +324,13 @@ def add_extension(self, extension_name, enabled=False):
326324
except Exception as e:
327325
if self.serverapp.reraise_server_extension_failures:
328326
raise
329-
self.log.warning(e)
327+
self.log.warning(
328+
"%s | error adding extension (enabled: %s): %s",
329+
extension_name,
330+
enabled,
331+
e,
332+
exc_info=True,
333+
)
330334
return False
331335

332336
def link_extension(self, name):
@@ -337,11 +341,11 @@ def link_extension(self, name):
337341
# Link extension and store links
338342
extension.link_all_points(self.serverapp)
339343
self.linked_extensions[name] = True
340-
self.log.info(f"{name} | extension was successfully linked.")
344+
self.log.info("%s | extension was successfully linked.", name)
341345
except Exception as e:
342346
if self.serverapp.reraise_server_extension_failures:
343347
raise
344-
self.log.warning(e)
348+
self.log.warning("%s | error linking extension: %s", name, e, exc_info=True)
345349

346350
def load_extension(self, name):
347351
extension = self.extensions.get(name)
@@ -352,21 +356,17 @@ def load_extension(self, name):
352356
except Exception as e:
353357
if self.serverapp.reraise_server_extension_failures:
354358
raise
355-
self.log.debug("".join(traceback.format_exception(*sys.exc_info())))
356-
self.log.warning(
357-
"{name} | extension failed loading with message: {error}".format(
358-
name=name, error=str(e)
359-
)
360-
)
359+
self.log.warning("%s | extension failed loading with message: %s", name, e)
360+
self.log.exception("%s | stack trace", name)
361361
else:
362-
self.log.info(f"{name} | extension was successfully loaded.")
362+
self.log.info("%s | extension was successfully loaded.", name)
363363

364364
async def stop_extension(self, name, apps):
365365
"""Call the shutdown hooks in the specified apps."""
366366
for app in apps:
367-
self.log.debug(f'{name} | extension app "{app.name}" stopping')
367+
self.log.debug("%s | extension app %r stopping", name, app.name)
368368
await app.stop_extension()
369-
self.log.debug(f'{name} | extension app "{app.name}" stopped')
369+
self.log.debug("%s | extension app %r stopped", name, app.name)
370370

371371
def link_all_extensions(self):
372372
"""Link all enabled extensions

jupyter_server/services/kernels/kernelmanager.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -227,15 +227,15 @@ async def start_kernel(self, kernel_id=None, path=None, **kwargs):
227227
kernel.execution_state = "starting"
228228
kernel.reason = ""
229229
kernel.last_activity = utcnow()
230-
self.log.info("Kernel started: %s" % kernel_id)
231-
self.log.debug("Kernel args: %r" % kwargs)
230+
self.log.info("Kernel started: %s", kernel_id)
231+
self.log.debug("Kernel args: %r", kwargs)
232232

233233
# Increase the metric of number of kernels running
234234
# for the relevant kernel type by 1
235235
KERNEL_CURRENTLY_RUNNING_TOTAL.labels(type=self._kernels[kernel_id].kernel_name).inc()
236236

237237
else:
238-
self.log.info("Using existing kernel: %s" % kernel_id)
238+
self.log.info("Using existing kernel: %s", kernel_id)
239239

240240
# Initialize culling if not already
241241
if not self._initialized_culler:
@@ -248,8 +248,8 @@ async def _finish_kernel_start(self, kernel_id):
248248
if hasattr(km, "ready"):
249249
try:
250250
await km.ready
251-
except Exception as e:
252-
self.log.exception(e)
251+
except Exception:
252+
self.log.exception("Error waiting for kernel manager ready")
253253
return
254254

255255
self._kernel_ports[kernel_id] = km.ports
@@ -276,7 +276,7 @@ def ports_changed(self, kernel_id):
276276
changed_ports = self._get_changed_ports(kernel_id)
277277
if changed_ports:
278278
# If changed, update captured ports and return True, else return False.
279-
self.log.debug(f"Port change detected for kernel: {kernel_id}")
279+
self.log.debug("Port change detected for kernel: %s", kernel_id)
280280
self._kernel_ports[kernel_id] = changed_ports
281281
return True
282282
return False

tests/extension/test_app.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,10 @@ async def _stop(*args):
163163
run_sync(jp_serverapp.cleanup_extensions())
164164
assert {msg for *_, msg in caplog.record_tuples} == {
165165
"Shutting down 2 extensions",
166-
'jupyter_server_terminals | extension app "jupyter_server_terminals" stopping',
167-
f'{extension_name} | extension app "mockextension" stopping',
168-
'jupyter_server_terminals | extension app "jupyter_server_terminals" stopped',
169-
f'{extension_name} | extension app "mockextension" stopped',
166+
"jupyter_server_terminals | extension app 'jupyter_server_terminals' stopping",
167+
f"{extension_name} | extension app 'mockextension' stopping",
168+
"jupyter_server_terminals | extension app 'jupyter_server_terminals' stopped",
169+
f"{extension_name} | extension app 'mockextension' stopped",
170170
}
171171

172172
# check the shutdown method was called twice

0 commit comments

Comments
 (0)