diff options
author | sergei Trofimov <sergei.trofimov@arm.com> | 2018-04-30 13:28:53 +0100 |
---|---|---|
committer | Marc Bonnici <marc.bonnici@arm.com> | 2018-05-09 15:06:31 +0100 |
commit | c1a0f842d000c7bc062872da7cc838a8644edc53 (patch) | |
tree | 116ccc1fa579d93aca7899b012b466fef745a620 /wa/utils | |
parent | 7cf0b881c194e99aa4cfc830f6e59d4219a6cb1b (diff) |
utils/log: maintain indent for buffered records
Ensure buffered records are indented properly by saving the indent level
at the time the record was generated as part of the record, and
preferring that over the current indent level inside LineFormatter.
Diffstat (limited to 'wa/utils')
-rw-r--r-- | wa/utils/log.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/wa/utils/log.py b/wa/utils/log.py index e554a109..c59ab2f5 100644 --- a/wa/utils/log.py +++ b/wa/utils/log.py @@ -225,15 +225,19 @@ class InitHandler(logging.handlers.BufferingHandler): super(InitHandler, self).__init__(capacity) self.targets = [] - def add_target(self, target): - if target not in self.targets: - self.targets.append(target) + def emit(self, record): + record.indent_level = _indent_level + super(InitHandler, self).emit(record) def flush(self): for target in self.targets: self.flush_to_target(target) self.buffer = [] + def add_target(self, target): + if target not in self.targets: + self.targets.append(target) + def flush_to_target(self, target): for record in self.buffer: target.emit(record) @@ -250,7 +254,8 @@ class LineFormatter(logging.Formatter): if self.usesTime(): record.asctime = self.formatTime(record, self.datefmt) - indent = _indent_width * _indent_level + indent_level = getattr(record, 'indent_level', _indent_level) + indent = _indent_width * indent_level d = record.__dict__ parts = [] for line in record.message.split('\n'): |