如何在控制台中获取Google-glog输出?

ssi*_*ral 4 linux console logging output

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

sh train_imagenet.sh | tee output.txt
Run Code Online (Sandbox Code Playgroud)

要么

sh train_imagenet.sh > output.txt
Run Code Online (Sandbox Code Playgroud)

我得到一个void文件,输出不保存到文件.所以我想知道如何检索此输出.提前致谢.

nn0*_*n0p 5

使用FLAGS_alsologtostderr = 1;main().

有关更多信息,请查看Setting Flagsglog 文档中的部分.


phi*_*hil 4

我也在用Caffe。你可以试试

sh train_imagenet.sh 2>&1 | tee output.txt
Run Code Online (Sandbox Code Playgroud)

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

sh train_imagenet.sh 2>&1 | tee -i output.txt
Run Code Online (Sandbox Code Playgroud)

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

除非另有指定,glog 写入文件名“/tmp/<程序名称>.<主机名>.<用户名>.log.<严重级别>.<日期>.<时间>.<pid>”(例如,“ /tmp/hello_world.example.com.hamaji.log.INFO.20080709-222411.10474”)。

默认情况下,除了日志文件之外,glog 还将严重级别 ERROR 或 FATAL 的日志消息复制到标准错误 (stderr)。

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