cro*_*red 18 python logging stderr
是否有可能将INFO或DEBUG的python日志消息转到stdout,使用WARNING或更高版本转到stderr?
cro*_*red 42
这似乎做我想要的:
#!/usr/bin/python
import sys
import logging
class InfoFilter(logging.Filter):
def filter(self, rec):
return rec.levelno in (logging.DEBUG, logging.INFO)
logger = logging.getLogger('__name__')
logger.setLevel(logging.DEBUG)
h1 = logging.StreamHandler(sys.stdout)
h1.setLevel(logging.DEBUG)
h1.addFilter(InfoFilter())
h2 = logging.StreamHandler()
h2.setLevel(logging.WARNING)
logger.addHandler(h1)
logger.addHandler(h2)
Run Code Online (Sandbox Code Playgroud)
E.Z*_*.Z. -2
我认为这会有所帮助:Handler.setLevel(lvl)
将此处理程序的阈值设置为lvl。低于lvl 严重程度的日志消息将被忽略。创建处理程序时,级别设置为 NOTSET(这会导致处理所有消息)。
但现在我发现它不会做你想要的事情(将信息/调试与警告/错误分开)
logging.StreamHandler
话虽这么说,您可以编写一个自定义处理程序(例如扩展的类),并覆盖该Handler.handle()
方法。
归档时间: |
|
查看次数: |
14626 次 |
最近记录: |