django 使用logging記錄日誌
阿新 • • 發佈:2018-11-16
django使用logging記錄日誌,我沒有用這方式去記錄日誌,主要還是專案小的原因吧,
有機會遇見大專案的話可以回頭研究.
配置setting.py配置檔案
import logging import django.utils.log import logging.handlers 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': '/sourceDns/log/all.log', #日誌輸出檔案 'maxBytes': 1024*1024*5, #檔案大小 'backupCount': 5, #備份份數 'formatter':'standard', #使用哪種formatters日誌格式 }, 'error': { 'level':'ERROR', 'class':'logging.handlers.RotatingFileHandler', 'filename': '/sourceDns/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': '/sourceDns/log/script.log', 'maxBytes': 1024*1024*5, 'backupCount': 5, 'formatter':'standard', }, 'scprits_handler': { 'level':'DEBUG', 'class':'logging.handlers.RotatingFileHandler', 'filename':'/sourceDns/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 }, 'sourceDns.webdns.views': { 'handlers': ['default', 'error'], 'level': 'DEBUG', 'propagate': True }, 'sourceDns.webdns.util':{ 'handlers': ['error'], 'level': 'ERROR', 'propagate': True } } }
解析:
1.formatters:配置列印日誌格式;
2.handler:用來定義具體處理日誌的方式,可以定義多種,
"default"就是預設方式,"console"就是列印到控制檯方式;
3.loggers:用來配置用那種handlers來處理日誌,比如你同時需要輸出日誌到檔案、控制檯;
4.loggers型別為"django"---這將處理所有型別日誌;
5.sourceDns.webdns.views--我覺得這是按照你的<專案名.app名.views>的格式命名的.
views.py程式碼配置
logger = logging.getLogger('sourceDns.webdns.views') try: mysql= connectMysql('127.0.0.1', '3306', 'david') except Exception,e: logger.error(e)