spectator/writer/file_writer.py (15 lines of code) (raw):

from spectator.writer import Writer from typing import TextIO class FileWriter(Writer): """Writer that outputs data to a TextIO instance, which can be stdout, stderr, a unix domain socket, or a regular file.""" def __init__(self, location: str, file: TextIO) -> None: super().__init__() self._logger.debug("initialize FileWriter to %s", location) self._file = file def write(self, line: str) -> None: self._logger.debug("write line=%s", line) try: print(line, file=self._file) except IOError: self._logger.error("failed to write line=%s", line) def close(self) -> None: self._file.close()