djangoのsettings.py内で、LogHandler StreamHandlerのログ出力先を指定する


django のcommand を cron経由 で実行していたところ、正常終了時もアラートメールが 飛んで来ていました。
調べるとStreamHandlerのデフォルトの出力先は、stderrということでしたので、
logging.StreamHandlerのログ出力先をstdoutに変更しました。


参考


変更方法

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

以上です。

コメント