我有一个Flask服务器以独立模式运行(使用app.run()).但是,我不希望在控制台中有任何消息,比如
127.0.0.1 - - [15/Feb/2013 10:52:22] "GET /index.html HTTP/1.1" 200 -
...
Run Code Online (Sandbox Code Playgroud)
如何禁用详细模式?
我正在玩Python的日志记录系统.我在循环中从Logger对象中删除处理程序时发现了一个奇怪的行为.也就是说,我的for循环删除了除一个处理程序以外 额外调用以.removeHandler顺利删除最后一个处理程序.呼叫期间不会发出任何错误消息.
这是测试代码:
import logging
import sys
logging.basicConfig()
dbg = logging.getLogger('dbg')
dbg.setLevel(logging.DEBUG)
testLogger = logging.getLogger('mylogger')
sh = logging.StreamHandler(sys.stdout)
fh = logging.FileHandler('mylogfile.log')
dbg.debug('before adding handlers: %d handlers'%len(testLogger.handlers))
testLogger.addHandler(fh)
testLogger.addHandler(sh)
dbg.debug('before removing. %d handlers: %s'%(len(testLogger.handlers),
str(testLogger.handlers)))
for h in testLogger.handlers:
dbg.debug('removing handler %s'%str(h))
testLogger.removeHandler(h)
dbg.debug('%d more to go'%len(testLogger.handlers))
#HERE I EXPECT THAT NO HANDLER WILL REMAIN
dbg.debug('after removing: %d handlers: %s'%(len(testLogger.handlers),
str(testLogger.handlers)))
if len(testLogger.handlers) > 0:
#Why is this happening?
testLogger.removeHandler(testLogger.handlers[0])
dbg.debug('after manually removing the last handler: %d handlers'%len(testLogger.handlers))
Run Code Online (Sandbox Code Playgroud)
我希望在循环结束时没有处理程序将保留在 …