0

特定の操作中に何が起こっているかを反映するタスク固有のログ ファイルを作成したいのですが、これらのログ メッセージをプライマリ Django ログにも記録したいと考えています。

一見するとうまくいくように見える私の現在の解決策は、次のようなものです。

logger = getLogger("%s:%s" % (__name__, task_id))
handler = FileHandler(task_log_file)
logger.addHandler(handler)

# Work

logger.removeHandler(handler)

私が言ったように、これは機能しますが、私に発生する主な問題は、このロガーが実際には一時的ではないということです.各ロガーについて読んだことから、logging.Managerシャットダウンするまで無期限にぶらぶらします. この場合、ロガーを使い終わったら、二度とロガーを使用しないことがわかっています (技術的にはそうするかもしれませんが、それはめったにありません)。システムが安定していると仮定すると、これは何十万ものタスクを実行している可能性があります。

これを行う「正しい」方法はありますか?

4

1 に答える 1

0

You could have a way to mark-and-sweep your logging resource files, or just use a singleton pattern.

于 2013-02-22T03:18:04.937 に答える