pycolib/coloredformatter.py
changeset 10 51b7e98e1f41
parent 5 055f7dfb3e4f
equal deleted inserted replaced
9:8d5a1affbb9d 10:51b7e98e1f41
    33         return formatted
    33         return formatted
    34 
    34 
    35 
    35 
    36     def format(self, record):
    36     def format(self, record):
    37         """Override, add color as specified."""
    37         """Override, add color as specified."""
    38         original_record = copy(record)
    38         # work on copy, do not alter original record, which is processed by other formatters too
       
    39         record = copy(record)
    39 
    40 
    40         ### message color
    41         ### message color
    41         fg, bg = self.get_color('message', record)
    42         fg, bg = self.get_color('message', record)
    42         if fg or bg:
    43         if fg or bg:
    43             record.msg = highlight(1, fg, bg) + record.msg + highlight(0)
    44             record.msg = highlight(1, fg, bg) + record.msg + highlight(0)
    45         ### levelname color
    46         ### levelname color
    46         fg, bg = self.get_color('levelname', record)
    47         fg, bg = self.get_color('levelname', record)
    47         if fg or bg:
    48         if fg or bg:
    48             record.levelname = highlight(1, fg, bg) + record.levelname + highlight(0)
    49             record.levelname = highlight(1, fg, bg) + record.levelname + highlight(0)
    49 
    50 
    50         res = logging.Formatter.format(self, record)
    51         return logging.Formatter.format(self, record)
    51 
       
    52         record = original_record
       
    53         return res
       
    54 
    52 
    55 
    53 
    56     def set_color(self, fieldname, levelname, fg=None, bg=None):
    54     def set_color(self, fieldname, levelname, fg=None, bg=None):
    57         """Specify color for parts of log message.
    55         """Specify color for parts of log message.
    58 
    56