Python/Django: runserver ではコンソールにログを記録し、Apache ではファイルにログを記録する 質問する

Python/Django: runserver ではコンソールにログを記録し、Apache ではファイルにログを記録する 質問する

printDjango アプリを で実行しているときに、トレース メッセージをコンソール ( など) に送信しmanage.py runserver、アプリを Apache で実行しているときにそれらのメッセージをログ ファイルに送信するにはどうすればよいでしょうか。

私はレビューしましたDjango のログ高度な用途に向けた柔軟性と構成可能性には感心しましたが、私の単純なユースケースをどう処理すればよいのか、いまだに困惑しています。

ベストアンサー1

これは Django のログ ベースのソリューションです。開発サーバーを実行しているかどうかを実際に確認するのではなく、DEBUG 設定を使用しますが、それを確認するより良い方法が見つかった場合は、簡単に適応できるはずです。

LOGGING = {
    'version': 1,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/your/file.log',
            'formatter': 'simple'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    }
}

if DEBUG:
    # make all loggers use the console.
    for logger in LOGGING['loggers']:
        LOGGING['loggers'][logger]['handlers'] = ['console']

見るhttps://docs.djangoproject.com/en/dev/topics/ロギング/詳細については。

おすすめ記事