【问题标题】:How to get Google-glog output in console?如何在控制台中获取 Google-glog 输出?
【发布时间】:2014-08-25 04:57:39
【问题描述】:

我正在使用一个名为 caffe 的卷积神经网络框架,它在控制台中的输出由 Google-glog 提供。但是,当我尝试使用以下命令将输出保存到文件时:

sh train_imagenet.sh | tee output.txt

sh train_imagenet.sh > output.txt

我得到一个 void 文件,并且输出没有保存到文件中。所以我想知道如何检索这个输出。 提前致谢。

【问题讨论】:

  • 试试sh train_imagenet.sh 2> output.txt。我认为这应该可以工作,因为 Google-glog 似乎将输出打印到 stderr 而不是 stdout。
  • 你是对的,它运行良好。谢谢。

标签: linux logging console output


【解决方案1】:

main() 中使用FLAGS_alsologtostderr = 1;

有关更多信息,请查看 glog 的 doc 中的 Setting Flags 部分。

【讨论】:

    【解决方案2】:

    我也在使用 Caffe。你可以试试

    sh train_imagenet.sh 2>&1 | tee output.txt
    

    您还可以在 tee 中添加选项 -i 以忽略 Ctrl-C(将 SIGINT 信号传递给 train_imagenet.sh 而不是 tee)

    sh train_imagenet.sh 2>&1 | tee -i output.txt
    

    顺便说一句,glog 默认会将日志消息写入日志文件。日志文件提供比 stdout 和 stderr 更好的严重性级别分隔。

    除非另有说明,否则 glog 会写入文件名“/tmp/...log...

    默认情况下,glog 会将严重级别为 ERROR 或 FATAL 的日志消息复制到标准错误 (stderr) 以及日志文件中。

    日志文件的位置可以通过环境变量GLOG_log_dir或命令行标志log_dir(如果安装了gflags)来设置。详情请参阅https://godoc.org/github.com/golang/glog

    【讨论】:

      【解决方案3】:

      FLAGS_logtostderr = 1 如果您希望它仅登录到控制台 FLAGS_alsologtostderr = 1 如果您想同时登录文件和控制台。

      glog 的控制台是“stderr”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多