相关疑难解决方法(0)

在Flask服务器中禁用控制台消息

我有一个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 flask

71
推荐指数
9
解决办法
4万
查看次数

从python的日志记录器中删除处理程序

我正在玩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)

我希望在循环结束时没有处理程序将保留在 …

python logging

47
推荐指数
4
解决办法
5万
查看次数

标签 统计

python ×2

flask ×1

logging ×1