1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-03-21 18:18:41 +00:00

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.
This commit is contained in:
sergei Trofimov 2018-04-30 13:28:53 +01:00 committed by Marc Bonnici
parent 7cf0b881c1
commit c1a0f842d0

View File

@ -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'):