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

mvb*_*tes 9 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)
Run Code Online (Sandbox Code Playgroud)

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

我想这应该有效

mvb*_*tes 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)
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问theese: 登录ipython ; 更多相同