python日志记录没有保存到文件

时间:2015-07-01 19:01:01

标签: python logging

过去一小时我一直坚持这一点。我已经插入登录到我的tkinter gui,但无法让它工作。然后我开始删除部分,直到我在非常python文档中的裸骨示例,它将无法正常工作。在这一点上,我没有别的东西可以删除。

代码如下:

import logging

LOG_FILENAME = r'logging_example.out'


logging.basicConfig(filename=LOG_FILENAME ,level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')

f = open(LOG_FILENAME, 'rt')
try:
    body = f.read()
finally:
    f.close()

print('FILE:')
print (body)

警告打印到stdout,但不生成文件。 我在Windows 7上运行python 3.4,x64。它是一个anacondas发行版,所以这是在Spyder内的Ipython中运行。

我想这应该有效

1 个答案:

答案 0 :(得分:11)

正如JonasByström所说,这在Ipython之外有效。似乎Ipython在我有机会之前配置了一个日志记录处理程序。此外,如果处理程序已存在,basicConfig将不执行任何操作。因此,为了让它在Ipython中工作,必须做以下三件事之一:1)添加新的处理程序,或者2)重新加载日志记录,或者3)删除现有的处理程序。我做了2号。

import logging
from imp import reload
reload(logging)
LOG_FILENAME = r'logging_example.out'


logging.basicConfig(filename=LOG_FILENAME ,level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')

f = open(LOG_FILENAME, 'rt')
try:
    body = f.read()
finally:
    f.close()

print('FILE:')
print (body)

有关更多信息,请访问theese: Logging in ipython; More on the same