分享

Django中的日志,日志写入文件

 怎么了啊早上 2014-07-08

以下在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库。
注:class RequireDebugTrue

       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")

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多