美文网首页
django日志器

django日志器

作者: wuhf06 | 来源:发表于2016-12-28 00:54 被阅读0次

    首先了解一下python的logging模块

    import logging
    logging.debug('debug message')
    logging.info('info message')
    logging.warning('warning message')
    logging.error('error message')
    logging.critical('critical message')

    结果如下:
    ![Paste_Image.png](https://img.haomeiwen.com/i4068471/932e18ef0ee5f9b8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    1.默认情况下python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志
    2.日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET
    
    详细文档可以参考:
    http://python.usyiyi.cn/translate/python_278/howto/logging.html#logging-basic-tutorial
    http://blog.csdn.net/zyz511919766/article/details/25136485
    
    ###在settings.py中添加如下信息:
    

    自定义日志输出信息LOGGING={

    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'standard': {
            'format': '%(asctime)s[
                %(threadName)s: %(thread)d
            ][
                %(name)s: %(lineno)d
            ][
                %(module)s: %(funcName)s
            ][
                %(levelname)s
            ]-%(message)s'
        }#日志格式
    },
    'filters': {
        
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'include_html': True,
            
        },
        'default': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': 'log/all.log',
            #日志输出文件'maxBytes': 1024*1024*5,
            #文件大小'backupCount': 5,
            #备份份数'formatter': 'standard',
            #使用哪种formatters日志格式
        },
        'error': {
            'level': 'ERROR',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': 'log/error.log',
            'maxBytes': 1024*1024*5,
            'backupCount': 5,
            'formatter': 'standard',
            
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'standard'
        },
        'request_handler': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': 'log/script.log',
            'maxBytes': 1024*1024*5,
            'backupCount': 5,
            'formatter': 'standard',
            
        },
        'scprits_handler': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': 'log/script.log',
            'maxBytes': 1024*1024*5,
            'backupCount': 5,
            'formatter': 'standard',
            
        }
    },
    'loggers': {
        'django': {
            'handlers': [
                'default',
                'console'
            ],
            'level': 'DEBUG',
            'propagate': False
        },
        'django.request': {
            'handlers': [
                'request_handler'
            ],
            'level': 'DEBUG',
            'propagate': False,
            
        },
        'scripts': {
            'handlers': [
                'scprits_handler'
            ],
            'level': 'INFO',
            'propagate': False
        },
        'blog.views': {
            'handlers': [
                'default',
                'error'
            ],
            'level': 'DEBUG',
            'propagate': True
        },        
    }
    

    }

    
    ###在blog/views.py中添加:
    

    import logging
    logger = logging.getLogger('blog.views')

    
    ###添加网站全局信息
    由于可能有很多地方都会用到,所以可以在settings.py中添加如下:
    

    SITE_NAME = "Paul 的个人博客"
    SITE_DESC = "学习python开发,欢迎大家交流"

    
    在blog/views.py中添加:
    

    from django.conf import settings
    def global_settings(request):
    return {'SITE_NAME':settings.SITE_NAME,'SITE_DESC':settings.SITE_DESC}

    
    在settings.py的TEMPLATES中添加:
    

    TEMPLATES=[
    {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
    os.path.join(BASE_DIR,'templates')
    ],
    'APP_DIRS': True,
    'OPTIONS': {
    'context_processors': [
    'django.template.context_processors.debug',
    'django.template.context_processors.request',
    'django.contrib.auth.context_processors.auth',
    'django.contrib.messages.context_processors.messages',
    'blog.views.global_settings',
    ],
    },
    },
    ]

    
    今天就是照着葫芦画了个瓢,大概的用法了解了,还未深入研究,等项目完成之后可以回头看看,继续整理

    相关文章

      网友评论

          本文标题:django日志器

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