14

カスタム クラスで Python ロガーをラップして、アプリケーション固有の機能を埋め込み、セットアップの詳細を開発者から隠したい (ファイル出力の設定、ログ レベルなど)。これを行うために、次の API を使用してクラスを作成しました。

__init__(log_level, filename)
debug(msg)
info(msg)
warning(msg)
error(msg)

Logger.debug/info/warning/etc 呼び出しは、通常、ログ呼び出しが行われた関数と行番号をログに書き込みます。ただし、カスタム クラスを使用すると、ログ ファイルに書き込まれる関数と行番号は常に同じです (カスタム クラス内の debug()/info()/warning()/error() 関数に対応します)。メッセージをログに記録したアプリケーションコードの行を保存したい。それは可能ですか?

前もって感謝します。

4

6 に答える 6

2

はい: sys._getframe(NUM)NUM は、現在の関数以外に探している関数の数を示します。返されたフレーム オブジェクトには、 や などの属性がf_linenoありf_code.co_filenameます。

http://docs.python.org/library/sys.html#sys._getframe

于 2012-10-19T19:10:27.497 に答える