summaryrefslogtreecommitdiff
path: root/slog/slog.py
diff options
context:
space:
mode:
Diffstat (limited to 'slog/slog.py')
-rw-r--r--slog/slog.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/slog/slog.py b/slog/slog.py
index 81d2c61..b3725dd 100644
--- a/slog/slog.py
+++ b/slog/slog.py
@@ -46,6 +46,7 @@ class StructuredLog:
self._msg_counter = slog.Counter()
self._context = {}
self._writers = []
+ self._massagers = []
def close(self):
for writer, _ in self._writers:
@@ -55,6 +56,9 @@ class StructuredLog:
def add_log_writer(self, writer, filter_rule):
self._writers.append((writer, filter_rule))
+ def add_log_massager(self, massager):
+ self._massagers.append(massager)
+
def set_context(self, new_context):
thread_id = self._get_thread_id()
self._context[thread_id] = new_context
@@ -73,6 +77,9 @@ class StructuredLog:
log_obj[key] = self._convert_value(value)
self._add_extra_fields(log_obj, exc_info)
+ for massager in self._massagers:
+ log_obj = massager(log_obj)
+
for writer, filter_rule in self._writers:
if filter_rule.allow(log_obj):
writer.write(log_obj)