Source code for core.config.formatters

"""Custom logging formatters for jobmon."""

from __future__ import annotations

import logging

import structlog


[docs] class JobmonStructlogConsoleFormatter(logging.Formatter): """Structlog-based console formatter.""" def __init__(self) -> None: """Initialize console formatter with structlog.""" super().__init__()
[docs] self._structlog_formatter = structlog.stdlib.ProcessorFormatter( processor=structlog.dev.ConsoleRenderer(), foreign_pre_chain=[] )
[docs] def format(self, record: logging.LogRecord) -> str: """Format using structlog console renderer.""" return self._structlog_formatter.format(record)
[docs] class JobmonStructlogJSONFormatter(logging.Formatter): """Structlog-based JSON formatter.""" def __init__(self) -> None: """Initialize JSON formatter with structlog.""" super().__init__()
[docs] self._structlog_formatter = structlog.stdlib.ProcessorFormatter( processor=structlog.processors.JSONRenderer(), foreign_pre_chain=[] )
[docs] def format(self, record: logging.LogRecord) -> str: """Format using structlog JSON renderer.""" return self._structlog_formatter.format(record)