2013-10-22 76 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') 

工作正常。

回答