はじめに pythonの標準ライブラリのloggingモジュールを利用すると、ログ出力の中に呼び出し元の位置に関する情報(ファイル名や関数名など)を含める事ができる。 具体的にはloggerに渡すフォーマットに以下を含めることで、ログ出力時に呼び出した位置の情報が出力される。 %(pathname)s ログ出力が行わる実行コードが存在するファイルのパス名。 %(funcName)s ログ出力が行われた際のコンテキスト上の関数名。 %(lineno)s ログ出力が行われたファイルの行番号 便利で素晴らしい。一方で、ちょっとloggingモジュールのloggerに細工をしようと思った時にこの機能が上手く動作しなくなって悲しかったという話。 loggingモジュールので呼び出し元の位置をログに含める事ができる 例えば以下のようなファイル構造の時に、hello.pyで定義された hello() 上