diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2016-10-18 12:57:15 +0200 |
---|---|---|
committer | Armin Ronacher <armin.ronacher@active-4.com> | 2016-10-18 12:57:15 +0200 |
commit | a4ccee6d55d8ffe831cd61d13cc02e9cb1c2b4f9 (patch) | |
tree | acec8caba1443cee7d9dbcfeaf28685ed0791df5 | |
parent | 1a4bb009f590a67a5ca701c4060c3560be73f6cf (diff) | |
download | raven-a4ccee6d55d8ffe831cd61d13cc02e9cb1c2b4f9.tar.gz |
Added register_logging_handler
-rw-r--r-- | raven/breadcrumbs.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/raven/breadcrumbs.py b/raven/breadcrumbs.py index 96d33ef..c2e4353 100644 --- a/raven/breadcrumbs.py +++ b/raven/breadcrumbs.py @@ -8,6 +8,7 @@ from raven._compat import iteritems, get_code, text_type, string_types from raven.utils import once +special_logging_handlers = [] special_logger_handlers = {} @@ -97,6 +98,11 @@ def record(message=None, timestamp=None, level=None, category=None, def _record_log_breadcrumb(logger, level, msg, *args, **kwargs): + for handler in special_logging_handlers: + rv = handler(logger, level, msg, args, kwargs) + if rv: + return + handler = special_logger_handlers.get(logger.name) if handler is not None: rv = handler(logger, level, msg, args, kwargs) @@ -247,6 +253,15 @@ def register_special_log_handler(name_or_logger, callback): special_logger_handlers[name] = callback +def register_logging_handler(callback): + """Registers a callback for log handling. The callback is invoked + with give arguments: `logger`, `level`, `msg`, `args` and `kwargs` + which are the values passed to the logging system. If the callback + returns `True` the default handling is disabled. + """ + special_logging_handlers.append(callback) + + hooked_libraries = {} |