【发布时间】:2015-01-13 18:13:13
【问题描述】:
我似乎在用 Python 设置记录器时遇到了一些麻烦。我正在尝试从控件中读取程序控制的值(海洋学模拟,有很多小的调整因素,最好将它们隔离在某个文件中,因为我们倾向于与它们一起玩)文件(基于 JSON)。其中包括应该设置日志记录的级别。由于这是我希望人们可能拼写错误并且 Python 非常严格的东西,我正在尝试将记录器设置包装在 try-except 中,如果出现错误(并给出警告),它将默认返回 INFO,如图所示:
with open(control['outFileStem'] + "_log.info", 'w'):
pass #Clear an existing logfile
#Then set up the logging
try:
logging.basicConfig(filename = control['outFileStem'] + "_log.info", level = control['logLevel'])
except ValueError:
control['logLevel'] = "INFO"
logging.basicConfig(filename = control['outFileStem'] + "_log.info", level = logging.INFO)
logging.warning('WARNING: Logging Level set to INFO')
logging.info('Control structure created successfully')
但是,当我通过修改控制文件中的级别进行实验时,它专门将级别设置为警告。无论我为关卡使用哪种变体(即 logging.INFO、数字代码、从控制对象调用值而不是将其放入自己等)都会发生这种情况。我无法弄清楚这里发生了什么.
如果它是相关的,控制是一个字典,我已经改变了 init 方法来处理从 JSON 文件中读取的内容。
提前致谢。
【问题讨论】:
标签: python logging exception-handling