django の command を cron 経由 で実行していたところ、正常終了時に、アラートメールが 飛んで来ていました。
StreamHandler のデフォルトのログ出力先は、stderr です。このため、エラー扱いとなりメール送信対象になっていました。
logging.StreamHandler のログ出力先を stdout に変更方法を記載します。
変更方法
-
変更内容の説明
- LOG ハンドラの記述に
'stream': ...
を追加。 - キー
stream
を追加、value
には 今回は標準出力なので、sys.stdout
を指定。
- LOG ハンドラの記述に
-
settings.py の 抜粋
import sys # LOG HANDLER 'handlers': { 'null': { 'level': 'DEBUG', 'class': 'django.utils.log.NullHandler', }, 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'normal', 'stream': sys.stdout, }, },
参考
以上です。
コメント