2013-10-22 79 views
0

我想向格式化程序添加動態字符串,但無法這樣做。將動態字符串添加到記錄器格式

這是代碼。

import logging 

logger = logging.getLogger('simple_example') 
logger.setLevel(logging.DEBUG) 
fh = logging.FileHandler('spam.log') 

var = 'some vaue' 
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s %s' % var) 
fh.setFormatter(formatter) 
logger.addHandler(fh) 
logger.error('error message') 

輸出:

Traceback (most recent call last): 
    File "try.py", line 8, in <module> 
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s %s' % var) 
TypeError: format requires a mapping 

這裏

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s %s' % var) 

是什麼導致了錯誤,我真的需要一個varible VAR添加到該格式。

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s simple_example') 

工作正常。

回答