django项目添加日志(转载)

Reading time ~1 minute

  • 我用的django的版本是1.3,听闻django可以配置日志模块,不用自己单独写,于是一阵狂搜加看官方文档解决了我的需求。

  • 我的需求是需要配置多个日志文件,网上搜出来大部分是一个的,所以给大家一个我的例子做参考。

  1. 在setting.py里面配置如下:

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': True,
        'formatters': {
            'standard': {
                    'format': '%(levelname)s %(asctime)s %(message)s'
                    },
        },
        'filters': {
        },
        'handlers': {
            'mail_admins': {
                'level': 'ERROR',
                'class': 'django.utils.log.AdminEmailHandler',
                'formatter':'standard',
            },
            'test1_handler': {
                'level':'DEBUG',
                'class':'logging.handlers.RotatingFileHandler',
                'filename':'path1',
                'formatter':'standard',
            },
            'test2_handler': {
                'level':'DEBUG',
                       'class':'logging.handlers.RotatingFileHandler',
                'filename':'path2',
                'formatter':'standard',
            },
        },
        'loggers': {
            'django.request': {
                'handlers': ['mail_admins'],
                'level': 'ERROR',
                'propagate': True,
            },
            'test1':{
                'handlers': ['test1_handler'],
                'level': 'INFO',
                'propagate': False
            },
             'test2':{
                'handlers': ['test2_handler'],
                'level': 'INFO',
                              'propagate': False
            },
        }
    }

  1. 里面的level什么的可以自己调整,需要几个文件就配几个handler和logger,还是很方面的。用的时候怎么用呢,看下面吧。
  2. 在要用log的view.py里面,如果想用test1这个日志,则:
log=logging.getLogger('test1')
log.error(“日志内容”) 
  1. 如果,想要在日志内容里面传递变量,怎么办:

     log.error(" %s : execute %s failed",变量1,变量2),比较像c的printf,还是很方便的
    

taste是个玄学

Published on November 16, 2022

印度工人

Published on August 30, 2022