pythonのログメッセージはINFOまたはDEBUGでstdoutに移動し、WARNING以上でstderrに移動できますか?Pythonログをstdoutとstderrに分割する
11
A
答えて
-1
私はこれが役立つだろうと思った:Handler.setLevel(lvl)
LVLにこのハンドラのためのしきい値を設定します。 lvlより重大ではないログメッセージは無視されます。ハンドラが作成されると、レベルはNOTSET(すべてのメッセージが処理されます)に設定されます。
しかし、今、私はそれはあなたが(WARNING/ERRORからスプリットINFO/DEBUG)やりたいことではないだろうと見
言われ、カスタムハンドラ(例えばlogging.StreamHandler
を拡張するクラス)を書くことができることHandler.handle()
メソッドを上書きします。
30
これは私がやりたいようだ:
#!/usr/bin/python
import sys
import logging
class InfoFilter(logging.Filter):
def filter(self, rec):
return rec.levelno in (logging.DEBUG, logging.INFO)
logger = logging.getLogger('__name__')
logger.setLevel(logging.DEBUG)
h1 = logging.StreamHandler(sys.stdout)
h1.setLevel(logging.DEBUG)
h1.addFilter(InfoFilter())
h2 = logging.StreamHandler()
h2.setLevel(logging.WARNING)
logger.addHandler(h1)
logger.addHandler(h2)
関連する問題
- 1. bashがログにSTDOUT + STDERR、通常の宛先にSTDERRが必要
- 2. マルチスレッドのPython Popen - stdout/stderrログを削除できません
- 3. リダイレクトstdoutとstderr
- 4. ABAP StdoutとStderr
- 5. Python 2.7 Get Command stdout/stderr
- 6. Pythonがstdoutとログファイルにログする
- 7. プログラムが起動されたときのstdoutとstderrのログ
- 8. サブプロセスstdoutとstderrをログファイルにキャプチャするためのPython関数
- 9. python subprocess.Popen(コマンド、stderr = subprocess.PIPE、stdout = subprocess.PIPE)のstderrをキャプチャします。
- 10. stdoutとstderrのログがどこにあるbashスクリプトで検出するには?
- 11. popen stderrとstdoutをパイプ
- 12. stderr outとstdoutを別々のログに再定義する方法は?
- 13. stdout、stderr、stdout + stderrを同期して保存します
- 14. MavenCli - stdout、stderr
- 15. 子プロセスstdoutとstderrをマージする
- 16. /dev/ttyでSTDOUTとSTDERRをリセットする
- 17. 分散シェルプログラムのstdoutとstderrをソケットにリダイレクト
- 18. pythonでサブプロセスstdoutとstderrのサイズを制限する方法
- 19. Pythonのサブプロセス(間違って?)sshのstderrとstdoutをマージする
- 20. 子プロセスstdout/stderrをJavaのメインプロセスstdout/stderrにリダイレクトする方法は?
- 21. サブプロセスstderrをstdoutにリダイレクト
- 22. ksh stdoutとstderrを別のプロセスにリダイレクト
- 23. stdoutとstderrをLogstashに配送
- 24. STDOUTとSTDERRをファイル ">&"にリダイレクト
- 25. ログを分割ログに追加する
- 26. nohupとsed、stderrとstdoutをリダイレクト
- 27. windows python stdoutとstderrを2つの異なるファイルに変換する
- 28. 各スレッドのstdout/stderrをリダイレクト
- 29. NDKでstdout/stderrをキャプチャ
- 30. stdoutをstderrに2度目にリダイレクトするとクラッシュする
これは*まだ* stdoutにログに記録されるまで*停止*警告メッセージは十分ではありません。 –
フィルタがおそらくもっと良いでしょう。 – glglgl
正解、私は答えを投稿した後に気づいた。今修正されました。 –