django使用logging記錄日志


  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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM