特定の操作中に何が起こっているかを反映するタスク固有のログ ファイルを作成したいのですが、これらのログ メッセージをプライマリ Django ログにも記録したいと考えています。
一見するとうまくいくように見える私の現在の解決策は、次のようなものです。
logger = getLogger("%s:%s" % (__name__, task_id))
handler = FileHandler(task_log_file)
logger.addHandler(handler)
# Work
logger.removeHandler(handler)
私が言ったように、これは機能しますが、私に発生する主な問題は、このロガーが実際には一時的ではないということです.各ロガーについて読んだことから、logging.Manager
シャットダウンするまで無期限にぶらぶらします. この場合、ロガーを使い終わったら、二度とロガーを使用しないことがわかっています (技術的にはそうするかもしれませんが、それはめったにありません)。システムが安定していると仮定すると、これは何十万ものタスクを実行している可能性があります。
これを行う「正しい」方法はありますか?