更改Google glog中的日志记录目录

时间:2013-10-10 09:06:10

标签: c++ logging glog

如何更改Google glog中的输出目录?

我只找到google::SetLogDestination(google::LogSeverity, const char* path)

尝试了:

google::SetLogDestination(ERROR, "C:\\log\\error.log);
google::InitGoogleLogging("Test");  

LOG(ERROR) << "TEST";

但没有写任何内容!

顺便说一句:如果你建议另一个轻量级,易于使用和线程安全的库,请告诉我!

感谢您的帮助!

3 个答案:

答案 0 :(得分:9)

您还可以执行以下操作之一:

只要安装了GFlgas库,就将日志目录作为命令行参数传递:

./your_application --log_dir=/some/log/directory

如果您不想在命令行中传递它,而是在源代码中设置它:

FLAGS_log_dir = "/some/log/directory";

如果未安装Google gflags库,您可以将其设置为环境变量:

GLOG_log_dir=/some/log/directory ./your_application

答案 1 :(得分:4)

以下是我所做的测试,您可以尝试一下,

#include <glog/logging.h>

using namespace std;

int main(int /*argc*/, char** argv)
{
    FLAGS_logtostderr = true;
    google::SetLogDestination(google::GLOG_INFO,"c:/lovelyGoogle" );
    google::InitGoogleLogging(argv[0]);

    LOG(INFO) << "This is INFO";
    LOG(WARNING) << "This is WARNING";
    LOG(ERROR) << "This is Error";

    system("pause");
    return 0;
}

在Visual Studio 2012下测试,Windows 7上的google-glog 0.3.3 它在我的C驱动程序上生成lvoelyGoogle20131016-141423.5160 如果设置FLAGS_logtostderr = false,则不会生成日志文件,

我相信你已经阅读this(好吧,我没有评论)

希望这有用,祝你好运。


PS:我已经在QtCreator(Qt5.1)上测试了Windows7,没有输出。我现在不知道如何修复它。

答案 2 :(得分:1)

我用这个:

fLS::FLAGS_log_dir = "c:/Documents/logs";