我正在尝试在我的应用程序中使用此代码:
def logger(log_file='base.log', set_level='INFO', identity='base'):
set_level = get_settings().logging_setLevel
if log_file:
log_path = os.path.join(os.path.expanduser('~'), '/mnt/logs/')
if not os.path.exists(log_path):
os.makedirs(log_path)
handler = logging.FileHandler(log_path+log_file)
else:
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - '+ identity +' - %(levelname)s - %(message)s', '%Y-%m-%dT%H:%M:%SZ')
handler.setFormatter(formatter)
logger = logging.getLogger(identity)
logger.addHandler(handler)
logger.setLevel(eval("logging." + set_level))
return logger
但问题是,无论我在 set_level
参数中选择哪个级别,它仍然会生成所有级别(“DEBUG”等......)。
您能帮我找出问题所在吗?
最佳答案
不要使用eval
,试试这个:
level = logging.getLevelName(set_level)
logger.setLevel(level)
关于python - logger.setLevel 未返回所需的级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18363935/