Source code for houdini_logging_tools.handlers.houdini_logging

"""Custom logging stream handler which writes to the Houdini logging API."""

# Standard Library
import logging

# Houdini Logging Tools
from houdini_logging_tools.mappings import LOGGING_TO_SEVERITY_MAP

# Houdini
import hou

# Classes


[docs] class HoudiniLoggingHandler(logging.StreamHandler): """Custom stream handler which outputs to the Houdini logging API.""" def __init__(self, stream=None) -> None: # type: ignore super().__init__(stream=stream) # Create a new source for the handler to emit to. hou.logging.createSource(self.__class__.__name__) # Methods
[docs] def emit(self, record: logging.LogRecord) -> None: """Emit a log message. Args: record: The log record to emit. """ context = f"{record.name} | {record.module}.{record.funcName}:{record.lineno}" entry = hou.logging.LogEntry( message=self.format(record), source_context=context, severity=LOGGING_TO_SEVERITY_MAP[record.levelname.lower()], time=record.created, ) hou.logging.log(entry, self.__class__.__name__)