| 5 | import sys |
| 6 | |
| 7 | class NullLogger: |
| 8 | def __init__ (self): |
| 9 | self.indent_ = '' |
| 10 | |
| 11 | def log (self, source_name, *args): |
| 12 | if self.on () and self.interesting (source_name): |
| 13 | self.do_log (self.indent_) |
| 14 | for i in args: |
| 15 | self.do_log (i) |
| 16 | self.do_log ('\n') |
| 17 | |
| 18 | def increase_indent (self): |
| 19 | if self.on (): |
| 20 | self.indent_ += ' ' |
| 21 | |
| 22 | def decrease_indent (self): |
| 23 | if self.on () and len (self.indent_) > 4: |
| 24 | self.indent_ = self.indent_ [-4:] |
| 25 | |
| 26 | def do_log (self, *args): |
| 27 | pass |
| 28 | |
| 29 | def interesting (self, source_name): |
| 30 | return False |
| 31 | |
| 32 | def on (self): |
| 33 | return True |
| 34 | |
| 35 | class TextLogger (NullLogger): |
| 36 | def __init__ (self): |