Skip to content

Instantly share code, notes, and snippets.

@ryonsherman
Last active August 29, 2015 14:18
Show Gist options
  • Save ryonsherman/6712a332ee785539b76d to your computer and use it in GitHub Desktop.
Save ryonsherman/6712a332ee785539b76d to your computer and use it in GitHub Desktop.
Overridden Python logging methods to return passed message
#!/usr/bin/env python2
import logging
# get root logger
log = logging.getLogger()
# wrapper to return message after logging
def log_return(fn):
def wrapper(msg, *args, **kwargs):
fn(msg, *args, **kwargs)
return msg
return wrapper
# override logger methods
map(lambda fn: setattr(log, fn, log_return(getattr(log, fn))),
('debug', 'info', 'warning', 'error', 'critical', 'exception'))
@ryonsherman
Copy link
Author

The default Python logging methods return void.

This leads to a somewhat verbose usage of an otherwise inline method:

msg = "Log message"
log.info(msg)
proc_msg(msg)

This snippet overrides the default methods to return the passed message:

proc_msg(log.info("Log Message"))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment