以下在setting.py中的代碼實(shí)現(xiàn)了把DEBUG級(jí)別的日志輸出到console,把INFO級(jí)別的日志輸出到文件(包括ERROR級(jí)別的request請(qǐng)求),日志文件每周第一天翻轉(zhuǎn),最多可以保存500個(gè)文件。 同時(shí),Debug為false的時(shí)候,能把500錯(cuò)誤信息發(fā)送到管理員郵箱。 LOGGING_FILE = "c:/log.log" LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { 'verbose': { 'format': '%(name)s %(levelname)s %(asctime)s %(pathname)s:%(lineno)d %(module)s %(process)d %(thread)d: %(message)s' }, 'simple': { 'format': '%(levelname)s %(message)s' }, }, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse', }, 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, }, 'handlers': { 'null': { 'level': 'DEBUG', 'class': 'django.utils.log.NullHandler', }, 'console':{ 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'verbose', 'filters': ['require_debug_true'], }, 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'] }, 'file_handler': { 'level':'INFO', 'class':'logging.handlers.TimedRotatingFileHandler', 'filename': LOGGING_FILE, 'when': 'W0', 'backupCount': 500, 'formatter':'verbose', }, }, 'loggers': { 'django': { 'handlers': ['console', 'file_handler'], 'propagate': True, 'level': 'INFO', }, 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True, }, } } 調(diào)用也很簡(jiǎn)單的: import logging logger = logging.getLogger("django") logger.DEBUG("This is debug output") 主要的使用方法都應(yīng)該參見(jiàn)python的logging庫(kù)。 New in Django 1.5 Temple2: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'simple': { 'format': '%(levelname)s %(message)s' }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'class':'logging.StreamHandler', 'formatter': 'simple', }, 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', }, 'file_handler': { 'level':'INFO', 'class':'logging.handlers.TimedRotatingFileHandler', 'filename': LOG_FILE_PATH, 'when': 'W0', 'backupCount': 500, }
},
'loggers': { 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True, }, 'mylogger': { 'handlers' : ['console',], 'level': 'DEBUG', } , 'writlogs': { 'handlers' : ['console','file_handler'], 'level': 'INFO', } } } 寫(xiě)入文件: import logging logger = logging.getLogger("django") logger.INFO("This is debug output") |
|