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