django の command を cron 経由 で実行していたところ、正常終了時に、アラートメールが 飛んで来ていました。
StreamHandler のデフォルトのログ出力先は、stderr です。このため、エラー扱いとなりメール送信対象になっていました。
logging.StreamHandler のログ出力先を stdout に変更方法を記載します。


変更方法

  • 変更内容の説明

    • LOG ハンドラの記述に 'stream': ...追加。
    • キー stream追加、value には 今回は標準出力なので、sys.stdout指定。
  • 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,
            },
        },
    


参考

以上です。

コメント