我正在使用python
3.7.6
. 和用于记录消息的 abseil 模块with absl-py
0.9.0
。我正在使用这段代码进行测试。
from absl import logging
from absl import app
def main(argv):
#logging.set_stderrthreshold(logging.ERROR)
#logging._warn_preinit_stderr = False
logging.set_verbosity(logging.DEBUG)
print(' 0 -----')
logging.debug(' 1 logging-debug-test')
logging.info(' 2 logging-info-test')
logging.warning(' 3 logging-warning-test')
logging.error('4 logging-error-test')
print(' 5 -----')
if __name__ == '__main__':
app.run(main)
在 aJupyter notebook
中对其进行测试时,从背景的颜色代码中可以清楚地看出,abseil 消息在 stderr 流中。
在 shell 中执行 python 代码时同样的事情:
我尝试了一些具有不同值的东西,例如:
logging.set_stderrthreshold(logging.DEBUG)
logging._warn_preinit_stderr = True
但我仍然看到 100% 相同的输出。
- 如何将输出 abseil 日志消息重定向到 stdout 而不是 stderr ?
- 是否期望日志输出消息重定向到 stderr 而不是 stdout?我可能遗漏了一些日志记录逻辑,我想更好地理解它。