django日志器

2016-12-28  本文已影响0人  wuhf06

首先了解一下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',
],
},
},
]


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

猜你喜欢

热点阅读