アプリケーションがどのように機能するかを学ぼうとしています。そして、このために、関数の名前と、ログ出力にメッセージを送信する行番号(コード内)をログに記録することを目的として、各関数の本体の最初の行としてデバッグコマンドを挿入しています。最後に、このアプリケーションは多くのファイルで構成されているため、アプリケーションの制御フローをよりよく理解できるように、単一のログファイルを作成したいと思います。
私が知っていることは次のとおりです。
-
関数名を取得するために、
function_name .__ name __
を使用できますが、function_nameを使用したくありません(一般的なLogをすばやくコピーして貼り付けることができるようにするため)すべての関数の本体にある.info( "Message")
)。これはCで__ func __
マクロを使用して実行できることは知っていますが、pythonについてはよくわかりません。 -
ファイル名と行番号を取得するために、私のアプリケーションがPython
locals()
関数を使用していることを確認しましたが、私は例を完全には認識していません:options = "LOG.debug("%(flag)s:%(flag_get)s "%locals())
そして私はLOG.infoのようにそれを試しました("My message%s"%locals())
は、{"self":< __main__。Class_nameobjectat 0x22f8cd0>}
のようなものを生成します。これについて何か入力してください。 -
ログを使用してハンドラーを追加してファイルにログを記録する方法は知っていますが、単一のファイルを使用して記録できるかどうかはわかりません。プロジェクト内の関数呼び出しの正しい順序ですべてのログメッセージ。
助けていただければ幸いです。
ありがとうございます!