py.lib.aw_log
2024-02-11
Child:9155a66edb31
py.lib.aw_log/src/aw_log/console.py
..init
| awgur@0 | 1 # coding: utf-8 |
| awgur@0 | 2 # devel.a0fs.ru -- aw_log.console -- v0.r202402.1 |
| awgur@0 | 3 |
| awgur@0 | 4 from typing import Any |
| awgur@0 | 5 from time import ctime |
| awgur@0 | 6 from sys import stderr, stdout |
| awgur@0 | 7 from typing import TextIO, Optional |
| awgur@0 | 8 |
| awgur@0 | 9 from . import AbstractLogBase |
| awgur@0 | 10 |
| awgur@0 | 11 |
| awgur@0 | 12 class NullLog(AbstractLogBase): |
| awgur@0 | 13 def _write(self, mark: str, msg: Any): |
| awgur@0 | 14 pass |
| awgur@0 | 15 |
| awgur@0 | 16 |
| awgur@0 | 17 class AbstractConsoleLog(AbstractLogBase): |
| awgur@0 | 18 def __init__(self, prefix: str = 'main'): |
| awgur@0 | 19 super().__init__(prefix) |
| awgur@0 | 20 self.fd: Optional[TextIO] = None |
| awgur@0 | 21 |
| awgur@0 | 22 def _write(self, mark: str, msg: Any): |
| awgur@0 | 23 if self.fd is None: |
| awgur@0 | 24 raise ValueError(f'Не определён канал логирования') |
| awgur@0 | 25 |
| awgur@0 | 26 tm = ctime() |
| awgur@0 | 27 for l in super()._write_helper(mark, msg): |
| awgur@0 | 28 self.fd.write(f'{tm} | {l}') |
| awgur@0 | 29 |
| awgur@0 | 30 |
| awgur@0 | 31 class StdoutLog(AbstractConsoleLog): |
| awgur@0 | 32 def __init__(self, prefix: str = 'main'): |
| awgur@0 | 33 super().__init__(prefix) |
| awgur@0 | 34 self.fd = stdout |
| awgur@0 | 35 |
| awgur@0 | 36 |
| awgur@0 | 37 class StderrLog(AbstractConsoleLog): |
| awgur@0 | 38 def __init__(self, prefix: str = 'main'): |
| awgur@0 | 39 super().__init__(prefix) |
| awgur@0 | 40 self.fd = stderr |