當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python Django CallbackFilter用法及代碼示例

本文介紹 django.utils.log.CallbackFilter 的用法。

聲明

class CallbackFilter(callback)[source]

這個過濾器接受一個回調函數(它應該接受一個參數,即要記錄的記錄),並為通過過濾器的每條記錄調用它。如果回調返回 False,則不會繼續處理該記錄。

例如,要從管理員電子郵件中過濾掉 UnreadablePostError (當用戶取消上傳時引發),您可以創建一個過濾器函數:

from django.http import UnreadablePostError

def skip_unreadable_post(record):
    if record.exc_info:
        exc_type, exc_value = record.exc_info[:2]
        if isinstance(exc_value, UnreadablePostError):
            return False
    return True

然後將其添加到您的日誌記錄配置中:

'filters': {
    'skip_unreadable_posts': {
        '()': 'django.utils.log.CallbackFilter',
        'callback': skip_unreadable_post,
    },
},
'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        'filters': ['skip_unreadable_posts'],
        'class': 'django.utils.log.AdminEmailHandler',
    },
},

相關用法


注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.utils.log.CallbackFilter。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。