Source code for pi_portal.modules.configuration.logging.bases.json_logger

"""JsonLoggerBase class."""

import logging

from pi_portal.modules.configuration.logging.exceptions.configuration import (
    LoggerConfigurationError,
)
from ..formatters.json import JsonFormatter
from .base_logger import LoggerConfigurationBase


[docs]class JsonLoggerBase(LoggerConfigurationBase): """JSON logging configuration base class.""" format_str = '%(message)%(levelname)%(name)%(asctime)' formatter_class = JsonFormatter handler_log_file_path: str misconfiguration_exception_message = ( "JSON loggers must be configured with a file path." )
[docs] def configure_formatter(self) -> logging.Formatter: """Configure the logger's formatter class.""" return self.formatter_class( self.running_state.log_uuid, self.format_str, )
[docs] def configure_handler(self) -> logging.Handler: """Configure the logger's handler class.""" if not isinstance(self.handler_log_file_path, str): raise LoggerConfigurationError(self.misconfiguration_exception_message) return self.handler_class(self.handler_log_file_path)