1. 程式人生 > >在django中使用logging模組

在django中使用logging模組

我用的django的版本是1.3,聽聞django可以配置日誌模組,不用自己單獨寫,於是一陣狂搜加看官方文件解決了我的需求。

我的需求是需要配置多個日誌檔案,網上搜出來大部分是一個的,所以給大家一個我的例子做參考。

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

# more details on how to customize your logging configuration.
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
        },
    }
}
裡面的level什麼的可以自己調整,需要幾個檔案就配幾個handler和logger,還是很方面的。用的時候怎麼用呢,看下面吧。

2.    在要用log的view.py裡面,如果想用test1這個日誌,則

             log=logging.getLogger('test1')

            log.error(“日誌內容”)

如果,想要在日誌內容裡面傳遞變數,怎麼辦

              log.error(" %s : execute %s failed",變數1,變數2),比較像c的printf,還是很方便的。