From 2d852e2da9d1268a69416f132644201bfd5fd06d Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Sun, 16 Jul 2017 21:04:48 +0100 Subject: [PATCH 1/2] Add SlackLogFilter fixes #1 --- slack_logger.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/slack_logger.py b/slack_logger.py index 0962807..5bba91b 100644 --- a/slack_logger.py +++ b/slack_logger.py @@ -58,3 +58,15 @@ def format(self, record): ret['ts'] = record.created ret['text'] = super(SlackFormatter, self).format(record) return ret + + +class SlackLogFilter(logging.Filter): + """ + Logging filter to decide when logging to Slack is requested, using + the `extra` kwargs: + + `logger.info("...", extra={'notify_slack': True})` + """ + + def filter(self, record): + return getattr(record, 'notify_slack', False) From 33158cad27379bbf72c06f29bac8b07240888c35 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Sun, 16 Jul 2017 21:11:05 +0100 Subject: [PATCH 2/2] Document SlackLogFilter in README --- README.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.rst b/README.rst index 88d5b1f..96afe95 100644 --- a/README.rst +++ b/README.rst @@ -47,3 +47,18 @@ Using logger logger.warn('warn message') logger.error('error message') logger.critical('critical message') + +Using filter +'''''''''''' + +You can also filter some messages only + +.. code-block:: python + + from slack_logger import SlackLogFilter + + sf = SlackLogFilter() + sh.addFilter(sf) + + logger.info('info message') # Not posted to slack + logger.info('info message to slack', extra={'notify_slack': True}) # Posted to slack