| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # -*- coding: utf-8 -*-
- # *****************************************************************************
- # Copyright (C) 2006-2020 Jorgen Stenarson. <jorgen.stenarson@bostream.nu>
- # Copyright (C) 2020 Bassem Girgis. <brgirgis@gmail.com>
- #
- # Distributed under the terms of the BSD License. The full license is in
- # the file COPYING, distributed as part of this software.
- # *****************************************************************************
- import os
- from logging import FileHandler, Formatter, StreamHandler
- from logging.handlers import DEFAULT_TCP_LOGGING_PORT
- from typing import Optional
- from .logger import LOGGER
- from .socket_stream import SocketStream
- _default_formatter_str = os.environ.get("PYREADLINE_FORMATTER", "%(message)s")
- SOCKET_HANDLER: Optional["StreamHandler[SocketStream]"] = None
- FILE_HANDLER: Optional[FileHandler] = None
- def start_socket_log(
- host: str = "localhost",
- port: int = DEFAULT_TCP_LOGGING_PORT,
- formatter_str: str = _default_formatter_str,
- ) -> None:
- global SOCKET_HANDLER
- if SOCKET_HANDLER is not None:
- return
- SOCKET_HANDLER = StreamHandler(SocketStream(host, port))
- SOCKET_HANDLER.setFormatter(Formatter(formatter_str))
- LOGGER.addHandler(SOCKET_HANDLER)
- def stop_socket_log() -> None:
- global SOCKET_HANDLER
- if SOCKET_HANDLER is None:
- return
- LOGGER.removeHandler(SOCKET_HANDLER)
- SOCKET_HANDLER = None
- def start_file_log(filename: str) -> None:
- global FILE_HANDLER
- if FILE_HANDLER is not None:
- return
- FILE_HANDLER = FileHandler(filename, "w")
- LOGGER.addHandler(FILE_HANDLER)
- def stop_file_log() -> None:
- global FILE_HANDLER
- if FILE_HANDLER is None:
- return
- LOGGER.removeHandler(FILE_HANDLER)
- FILE_HANDLER.close()
- FILE_HANDLER = None
- def stop_logging() -> None:
- stop_file_log()
- stop_socket_log()
|