1. ホーム
  2. django

[解決済み] Django のログとエラーの場所

2023-03-30 20:59:48

質問

nginxでdjangoサーバーを立ち上げたのですが、いくつかのページで403エラーが発生します。

djangoのログはどこで見ることができますか? エラーの詳細を見ることができますか?

どのように解決するのですか?

ログ は、あなたの settings.py ファイルに設定されています。新しい、デフォルトのプロジェクトは、次のようになります。

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

デフォルトでは、これらはログファイルを作成しません。もし、ログファイルを作成したい場合は filename パラメータを handlers

    'applogfile': {
        'level':'DEBUG',
        'class':'logging.handlers.RotatingFileHandler',
        'filename': os.path.join(DJANGO_ROOT, 'APPNAME.log'),
        'maxBytes': 1024*1024*15, # 15MB
        'backupCount': 10,
    },

これは、15MBの大きさになる回転ログを設定し、10個の履歴バージョンを保持します。

loggers セクションに applogfilehandlers に変換してください。

'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
        'APPNAME': {
            'handlers': ['applogfile',],
            'level': 'DEBUG',
        },
    }

この例では、ログを Django のルートに、ファイル名 APPNAME.log