美文网首页
使用logging系统发送邮件

使用logging系统发送邮件

作者: 盗花 | 来源:发表于2019-11-25 17:25 被阅读0次

    django开发的网站正式部署上线后,通常要关闭settings.py中的DEBUG = True选项。此时如何方便获取系统存在的各种bug呢?一种解决方法是使用django的logging日志系统,并且将bug信息通过邮件发送给你。settings.py中的配置如下:

    # 邮箱设置
    EMAIL_HOST = 'smtp.126.com'
    EMAIL_HOST_USER = 'XXXXXX'
    EMAIL_HOST_PASSWORD = 'XXXXXX'
    EMAIL_PORT = 25
    EMAIL_USE_TLS = True
    DEFAULT_FROM_EMAIL = '大青呱呱的博客 <sass1s@126.com>'
    
    # 日志设置
    
    # 要发送的邮件列表,必须项
    ADMINS = (
        ('幽狐', '2063198253@qq.com'),
        ('math4s', 'math4s@126.com')
    )
    # EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    SERVER_EMAIL = 'sass1s@126.com'  # 邮件发送者,必须项
    
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'formatters': {
            'verbose': {
                'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
                'style': '{'
            },
            'simple': {
                'format': '{levelname} {message}',
                'style': '{',
            },
        },
        'filters': {
            'require_debug_true': {
                '()': 'django.utils.log.RequireDebugTrue',
            },
        },
        'handlers': {
            'console': {
                'level': 'INFO',
                'filters': ['require_debug_true'],
                'class': 'logging.StreamHandler',
                'formatter': 'simple'
            },
            'mail_admins': {
                'level': 'ERROR',
                'class': 'django.utils.log.AdminEmailHandler',
                'formatter': 'verbose',
            },
            'file': {
                'level': 'WARNING',
                # 'class': 'logging.FileHandler',
    
                # 日志分割
                'class': 'logging.handlers.TimedRotatingFileHandler',
                'when': 'midnight',  # 分割时间为凌晨
                'backupCount': 30,  # 保留最近的30天日志
    
                'filename': os.path.join(BASE_DIR, 'logs/debug.log'),
                'formatter': 'verbose',
            },
        },
        'loggers': {
            'django': {
                'handlers': ['console'],
                # 'level': 'INFO',
                'propagate': True
            },
            'django.request': {
                'handlers': ['file', 'mail_admins'],
                'level': 'WARNING',
                'propagate': False,
            },
        },
    }

    相关文章

      网友评论

          本文标题:使用logging系统发送邮件

          本文链接:https://www.haomeiwen.com/subject/zweqwctx.html