相关疑难解决方法(0)

除日志文件外,使Python记录器还将所有消息输出到stdout

有没有办法使用logging模块自动将事物输出到stdout 以及它们应该去的日志文件?例如,我想所有呼叫logger.warning,logger.critical,logger.error去他们预期的地方,但除了总是被复制到stdout.这是为了避免重复消息,如:

mylogger.critical("something failed")
print "something failed"
Run Code Online (Sandbox Code Playgroud)

python logging error-logging

417
推荐指数
8
解决办法
32万
查看次数

TensorFlow 1.8中的自定义日志记录处理程序

对于以前版本的TensorFlow,我们已经覆盖了tf.logging._logger在我们的python代码库的其余部分中使用自定义日志记录行为的处理程序:

  • 标准化日志格式
  • 记录级别INFO到stdout和DEBUG到文件
  • 在GCP上,使用易于搜索的字符串登录到Stackdriver

例如,在TF 1.7上,以下代码段(省略了一些日志记录样板)

    import tensorflow as tf
    tf.logging.set_verbosity(tf.logging.INFO)
    tf_logging = tf.logging._logger
    tf_logging.handlers = [_std_out_handler()]
    tf_logging.propagate = False
    _logging.info("EXPECTED LOG FORMAT")
    tf.logging.info("TF LOG FORMAT")
Run Code Online (Sandbox Code Playgroud)

产生

[INFO |mrtx] 2018-05-18 15:10:07,613                                            /merantix_core/common/util/logging.py:189  --- EXPECTED LOG FORMAT
[INFO |mrtx] 2018-05-18 15:10:07,614  /usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/tf_logging.py:116  --- TF LOG FORMAT
Run Code Online (Sandbox Code Playgroud)

在TF 1.8中,tf.logging._logger不再可访问.根据这个帖子,我尝试了设置

   tf_logging = _logging.getLogger('tensorflow')
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中,输出是

[INFO |mrtx] 2018-05-18 15:20:34,043                                            /merantix_core/common/util/logging.py:190  --- EXPECTED LOG FORMAT
INFO:tensorflow:TF LOG FORMAT
Run Code Online (Sandbox Code Playgroud)

我没有看到TF 1.7和1.8之间的tf_logging.py有任何变化.我假设之前没有强制执行tf_export调用,但现在正在执行.还有一些方法可以覆盖处理程序tf.logging吗?或者,是否有更规范的方式来获得上述功能?

tensorflow

4
推荐指数
1
解决办法
1024
查看次数

标签 统计

error-logging ×1

logging ×1

python ×1

tensorflow ×1