以下在setting.py中的代码实现了把DEBUG级别的日志输出到console,把INFO级别的日志输出到文件(包括ERROR级别的request请求),日志文件每周第一天翻转,最多可以保存500个文件。 同时,Debug为false的时候,能把500错误信息发送到管理员邮箱。 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, }, } } 调用也很简单的: import logging logger = logging.getLogger("django") logger.DEBUG("This is debug output") 主要的使用方法都应该参见python的logging库。 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', } } } 写入文件: import logging logger = logging.getLogger("django") logger.INFO("This is debug output") |
|