我使用Anaconda和Spyder;我正在学习如何将调试消息打印到控制台以及将它们写入日志文件。
每次切换logging.disable函数时,日志记录都会停止将打印调试消息打印到控制台或写入日志文件。
以下是导致我遇到问题的步骤。
在我使用logging.disable函数之前,日志记录工作正常。
使用禁用功能,然后将其注释掉以重新启用日志记录后,对于写入文件或打印到控制台,日志记录都不再起作用。
重新启动Spyder并再次进行日志记录,但问题仍然存在。
我发现了类似的stackoverflow问题Here建议使用:
(a)logging.disable(logging.NOTSET)
或
(b)logging.shutdown()
reload(logging)
(a)和(b)都不起作用。
以下是有问题的代码:
import logging
#Config for writing to the console
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
#Config for writing to file
#logging.basicConfig(filename='myProgramLog.txt', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
#logging.disable(logging.CRITICAL)
logging.debug('Start of program')
def factorial(n):
logging.debug('Start of factorial (%s)' %(n))
total=1
for i in range(1, n+1):
total *= i
logging.debug('i is %s, total is %s' % (i, total))
logging.debug('Return value is %s' % (total))
return total
print(factorial(5))
logging.debug('End of program')