diff options
author | Zuul <zuul@review.openstack.org> | 2018-06-08 12:24:22 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-06-08 12:24:22 +0000 |
commit | 4b4dabebabb4517a1c3e56365176d55b1f2e52b7 (patch) | |
tree | 86c115d40601d638f9f40d17f66b211ba5732266 | |
parent | 2d0d08081bced14d3a16370f240e7e98c777bfba (diff) | |
parent | 9da1f158b233b7212f010d726cca4f6230bd2e5f (diff) | |
download | oslo-log-4b4dabebabb4517a1c3e56365176d55b1f2e52b7.tar.gz |
Merge "Provide reset_color key on log record"
-rw-r--r-- | oslo_log/handlers.py | 7 | ||||
-rw-r--r-- | oslo_log/tests/unit/test_log.py | 7 |
2 files changed, 11 insertions, 3 deletions
diff --git a/oslo_log/handlers.py b/oslo_log/handlers.py index 7481618..d1240de 100644 --- a/oslo_log/handlers.py +++ b/oslo_log/handlers.py @@ -146,6 +146,12 @@ class OSJournalHandler(logging.Handler): class ColorHandler(logging.StreamHandler): + """Log handler that sets the 'color' key based on the level + + To use, include a '%(color)s' entry in the logging_context_format_string + and a '%(reset_color)s' entry at the end of the format string so that the + color setting does not persist between log lines. + """ LEVEL_COLORS = { _TRACE: '\033[00;35m', # MAGENTA logging.DEBUG: '\033[00;32m', # GREEN @@ -158,4 +164,5 @@ class ColorHandler(logging.StreamHandler): def format(self, record): record.color = self.LEVEL_COLORS[record.levelno] + record.reset_color = '\033[00m' return logging.StreamHandler.format(self, record) diff --git a/oslo_log/tests/unit/test_log.py b/oslo_log/tests/unit/test_log.py index 669081c..39b1cfc 100644 --- a/oslo_log/tests/unit/test_log.py +++ b/oslo_log/tests/unit/test_log.py @@ -987,7 +987,8 @@ class FancyRecordTestCase(LogTestBase): "[%(request_id)s]: " "%(instance)s" "%(resource)s" - "%(message)s", + "%(message)s" + "%(reset_color)s", logging_default_format_string="%(missing)s: %(message)s") self.colorlog = log.getLogger() self._add_handler_with_cleanup(self.colorlog, handlers.ColorHandler) @@ -1040,7 +1041,7 @@ class FancyRecordTestCase(LogTestBase): fake_resource = {'name': resource} message = 'info' self.colorlog.info(message, context=ctxt, resource=fake_resource) - expected = ('%s [%s]: [%s] %s\n' % + expected = ('%s [%s]: [%s] %s\033[00m\n' % (color, ctxt.request_id, resource, message)) self.assertEqual(expected, self.stream.getvalue()) @@ -1053,7 +1054,7 @@ class FancyRecordTestCase(LogTestBase): 'id': resource_id} message = 'info' self.colorlog.info(message, context=ctxt, resource=fake_resource) - expected = ('%s [%s]: [%s-%s] %s\n' % + expected = ('%s [%s]: [%s-%s] %s\033[00m\n' % (color, ctxt.request_id, type, resource_id, message)) self.assertEqual(expected, self.stream.getvalue()) |