Django 基本日誌配置

在內部,Django 使用 Python 日誌系統。有許多方法可以配置專案的日誌記錄。這是一個基地:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'default': {
            'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt': "%Y-%m-%d %H:%M:%S"
        },
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'default'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'INFO',
        },
    }
}

格式化程式

它可以用於配置列印到輸出時的日誌外觀。你可以通過為每個不同的格式化程式設定鍵字串來定義許多格式化程式。然後在宣告處理程式時使用格式化程式。

處理程式

可用於配置日誌的列印位置。在上面的示例中,它們被髮送到 stdout 和 stderr。有各種處理程式類:

'rotated_logs': {
    'class': 'logging.handlers.RotatingFileHandler',
    'filename': '/var/log/my_project.log',
    'maxBytes': 1024 * 1024 * 5,  # 5 MB
    'backupCount': 5,
    'formatter': 'default'
    'level': 'DEBUG',
},

這將生成由 filename 定位的檔案中的日誌。在此示例中,噹噹前大小為 5 MB(舊的重新命名為 my_project.log.1)時將建立新的日誌檔案,並保留最新的 5 個檔案以進行存檔。

'mail_admins': {
    'level': 'ERROR',
    'class': 'django.utils.log.AdminEmailHandler'
},

這將通過 eamil 將每個日誌傳送給 ADMINS 設定變數中指定的使用者。級別設定為 ERROR,因此只有通過電子郵件傳送級別為 ERROR 的日誌。這對於瞭解生產伺服器上 50x 的潛在錯誤非常有用。

其他處理程式可以與 Django 一起使用。有關完整列表,請閱讀相應的文件 。與格式化程式一樣,你可以在同一個專案中定義多個處理程式,為每個處理程式設定不同的鍵字串。每個處理程式都可以在特定的記錄器中使用。

記錄儀

LOGGING 中,最後一部分為每個模組配置最小日誌記錄級別,使用的處理程式等。