Newer
Older
pydwiki / log_manager / formatter.py
import logging


class CustomFormatter(logging.Formatter):
    """カスタムフォーマッター。
    trace_log を用いる際、pathname, lineno が、
    trace_log になることを防ぐためのフォーマッター。
    """

    def format(self, record):
        """フォーマットします。

        Arguments:
            record: レコード

        Return:
            フォーマットされたメッセージ
        """

        record.depth = ""

        # ext_* が指定されていれば、置き換える。
        if "ext_depth" in record.__dict__:
            record.depth = record.__dict__["ext_depth"]
        if "ext_levelname" in record.__dict__:
            record.levelname = record.__dict__["ext_levelname"]
        if "ext_pathname" in record.__dict__:
            record.pathname = record.__dict__["ext_pathname"]
        if "ext_lineno" in record.__dict__:
            record.lineno = record.__dict__["ext_lineno"]

        return super().format(record)