如何在Google glog中更改输出目录?
我只找到google::SetLogDestination(google::LogSeverity, const char* path)
试着用:
google::SetLogDestination(ERROR, "C:\\log\\error.log);
google::InitGoogleLogging("Test");
LOG(ERROR) << "TEST";
但什么都没写!
顺便说一句:如果你建议另一个轻量级的,易于使用和线程安全的库,请让我知道!
Thx任何帮助!
5条答案
按热度按时间x7rlezfr1#
您还可以执行以下操作之一:
只要安装了GFlgas库,就将日志目录作为命令行参数传递:
如果你不想在命令行中传递它,而是在源代码中设置它:
如果没有安装Google gflags库,您可以将其设置为环境变量:
qacovj5a2#
这是我做的测试,你可以试试
在Windows 7上的Visual Studio 2012、google-glog 0.3.3下测试。
它在我的C驱动程序上生成了
lvoelyGoogle20131016-141423.5160
。如果设置了
FLAGS_logtostderr = false
,则不会生成日志文件,我相信你已经读过this了(好吧,我对此无可奉告)
希望这对你有帮助,祝你好运。
PS:我已经在QtCreator(Qt5.1)和Windows7上测试过了,没有任何输出。我现在不知道该怎么补救。
enyaitl33#
在我使用这个库的可怕经历中,我发现这个标志
FLAGS_log_dir
和这个函数google::SetLogDestination()
相互竞争。好极了我知道你可以使用其中一个,但不能两者都用。
选项1:使用标志
并在
/path/to/your/logdir
中生成一堆名为your_exec.some_number.machine_name.log.log_severity....
的文件及其各自的符号链接。将为程序中使用的每个log_severity生成一对文件(INFO、WARNING、ERROR、FATAL)。有趣的事实:INFO文件包含所有内容,WARNING文件包含警告以下的所有内容,等等。天知道为什么需要这些符号链接。选项2:使用文件名
其中
fs
是c++17的文件系统库。这是将所有日志发送到同一个文件(只有一个,不是很多),最后删除那个讨厌的符号链接。mwecs4sa4#
我用这个:
5rgfhyps5#
这个解决方案对我很有效:
FLAGS_log_dir
设置首选的日志目的地。FLAGS_alsologtostderr
设置你是否也想记录到stderr,同时将日志保存到一个单独的文件中以供查看。注意事项:
如果希望日志同时写入文件和stderr,请不要将
FLAGS_logtostderr
设置为true
,这样就可以像我一样使用FLAGS_alsologtostderr
。在Clion 2023.1.3、macOS 13.3.1(a)(22E772610a)、glog v0.6.0下测试