diff options
Diffstat (limited to 'slog/slog.py')
-rw-r--r-- | slog/slog.py | 7 |
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) |