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

Linux 如何在控制台中获取Google glog输出?,linux,logging,console,output,Linux,Logging,Console,Output,我正在使用一个称为caffe的卷积神经网络框架,它在控制台中的输出由提供。但是,当我尝试使用以下命令将输出保存到文件时: sh train_imagenet.sh | tee output.txt 或 我得到一个空文件,输出不保存到文件中。所以我想知道如何检索这个输出。 提前感谢。使用标志\u alsologtostderr=1在main()中 有关更多信息,请查看glog中的设置标志部分。我也在使用Caffe。你可以试试 sh train_imagenet.sh 2>&1 |

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

sh train_imagenet.sh | tee output.txt

我得到一个空文件,输出不保存到文件中。所以我想知道如何检索这个输出。
提前感谢。

使用
标志\u alsologtostderr=1
main()


有关更多信息,请查看glog中的设置标志部分。

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

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

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

除非另有规定,否则glog将写入文件名“/tmp/…log…” (例如“/tmp/hello_world.example.com.hamaji.log.INFO.20080709-222411.10474”)

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


可以通过环境变量
GLOG\u log\u dir
或命令行标志
log\u dir
设置日志文件的位置(如果安装了gflags)。有关详细信息,请参阅。

尝试
sh train\u imagenet.sh 2>output.txt
。我认为这应该是可行的,因为谷歌glog似乎将输出打印到stderr而不是stdout。你是对的,它工作得非常完美。谢谢
sh train_imagenet.sh 2>&1 | tee output.txt
sh train_imagenet.sh 2>&1 | tee -i output.txt