gpt4 book ai didi

c++ - 如何最好地在我的 C++ 程序中使用相同的 Boost 日志?

转载 作者:行者123 更新时间:2023-12-01 14:54:36 24 4
gpt4 key购买 nike

如果我在 Boost 日志文档中遗漏了一个技巧,我深表歉意,但我真的很难弄清楚如何在我的程序中最好地使用 Boost 日志。

我不是一个完整的 C++ 菜鸟,但我远远不能胜任这门语言......!

简而言之:

在主类之外的其他类中使用相同的 Boost 日志的最佳做法是什么?

我的目标是使用存储到文件并显示到控制台的 boost 日志。

setup/main 位工作正常:

主要入口点:

void init();

int main()
{
/*start logging */

init();
logging::add_common_attributes();

using namespace logging::trivial;
src::severity_logger< severity_level > lg;
BOOST_LOG_SEV(lg, info) << "KeyGeo started...";

//rest of my program objects start here, omitted for brevity......

return 0;
}

使用初始化函数根据 Boost 文档设置记录器

/* configuration for the boost log */
void init()
{
logging::add_file_log
(
keywords::file_name = "KGLog_%N.log",
keywords::rotation_size = 10 * 1024 * 1024,
keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0),
keywords::format = "[%TimeStamp%]: %Message%",
keywords::open_mode = std::ios_base::app,
keywords::auto_flush = true
);

logging::core::get()->set_filter
(
logging::trivial::severity >= logging::trivial::info
);

}

但是我如何/如何在我的其他类(class)中使用相同的日志。我可以将“lg”作为参数传递给构造函数或类似的,但这似乎是一种怪异的方式。我尝试了各种示例,例如 src::logger lg 但这些都不起作用。

我在这里放什么?

#include "KGSQLManager.h"
#include "KGResult.h"
#include "stdafx.h"

using namespace logging::trivial;

namespace KeyGeo
{
class KGDataFactory
{



/* SOME BOOST LOG OBJECT IM GUESSING ???! */

private:
SQLWCHAR *connStr;
std::vector< KGResult > results;

public:
KGDataFactory();
KGSQLManager SQLManager;
void parseSourceGeo();
void initLogs();

};
}

最佳答案

我自己解决了这个...

我只需要像这样在第二个类中将记录器定义为相同类型:

namespace KeyGeo
{
class KGDataFactory
{

private:
SQLWCHAR *connStr;
std::vector< KGResult > results;

/* added this.....*/
src::severity_logger< severity_level > lg;

public:
KGDataFactory();
KGSQLManager SQLManager;
void parseSourceGeo();
void initLogs();

};
}

这样使用:

namespace KeyGeo
{

/* consturctor for main factory wrapper */
KGDataFactory::KGDataFactory()
{
BOOST_LOG_SEV(lg, info) << "This worked in the class";
};

关于c++ - 如何最好地在我的 C++ 程序中使用相同的 Boost 日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58777857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com