Skip to content

Commit 4a25ed7

Browse files
committed
add logging handler to Session
1 parent 03b02c6 commit 4a25ed7

File tree

1 file changed

+32
-7
lines changed

1 file changed

+32
-7
lines changed

src/sasctl/core.py

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -327,27 +327,52 @@ def __init__(self, hostname,
327327
if current_session() is None:
328328
current_session(self)
329329

330-
def add_stderr_logger(self, level=None):
331-
"""Log session requests and responses to stderr.
330+
def add_logger(self, handler, level=None):
331+
"""Log session requests and responses.
332332
333333
Parameters
334334
----------
335+
handler : logging.Handler
336+
A Handler instance to use for logging the requests and responses.
335337
level : int, optional
336-
The logging level of the handler. Defaults to logging.DEBUG
338+
The logging level to assign to the handler. Ignored if handler's
339+
logging level is already set. Defaults to DEBUG.
337340
338341
Returns
339342
-------
340-
logging.StreamHandler
343+
handler
344+
345+
346+
.. versionadded:: 1.2.0
341347
342348
"""
343349
level = level or logging.DEBUG
344350

345-
handler = logging.StreamHandler()
346-
handler.setLevel(level=level)
351+
if handler.level == logging.NOTSET:
352+
handler.setLevel(level)
353+
347354
self.message_log.addHandler(handler)
348-
self.message_log.setLevel(level)
355+
356+
if self.message_log.level == logging.NOTSET:
357+
self.message_log.setLevel(handler.level)
358+
349359
return handler
350360

361+
def add_stderr_logger(self, level=None):
362+
"""Log session requests and responses to stderr.
363+
364+
Parameters
365+
----------
366+
level : int, optional
367+
The logging level of the handler. Defaults to logging.DEBUG
368+
369+
Returns
370+
-------
371+
logging.StreamHandler
372+
373+
"""
374+
return self.add_logger(logging.StreamHandler(), level)
375+
351376
@property
352377
def username(self):
353378
return self._settings.get('username')

0 commit comments

Comments
 (0)