エラーの発生場所を詳細に表示する Python Error Log フォーマット

未分類

ログからエラーの発生場所を特定しやすくするために、ファイル名、行番号、関数名を含むフォーマットを設定します。以下の例では、Formatterを使ってこれらの情報を追加しています。

from logging import getLogger, StreamHandler, FileHandler, DEBUG, Formatter

# loggerの作成
logger = getLogger(__name__)
logger.setLevel(DEBUG)
logger.propagate = False


# 詳細なフォーマットを設定
formatter = Formatter('%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(funcName)s - %(message)s')

# コンソール用ハンドラー (StreamHandler)
console_handler = StreamHandler()
console_handler.setLevel(DEBUG)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)

# ############## ファイル用ハンドラー (FileHandler) ##############
# 必要に応じて削除してください
file_handler = FileHandler('app.log', encoding='utf-8')  # ログファイル名を'app.log'に設定
file_handler.setLevel(DEBUG)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)


if __name__ == "__main__":

    # 実際にログを出力してみる
    def example_function():
        logger.error('エラーメッセージを出力')

    example_function()

コメント

タイトルとURLをコピーしました