spdlog多个工程共用记录器
时间: 2023-11-08 16:57:03 浏览: 35
如果您想在多个工程中使用同一个记录器,可以使用`shared_ptr`来传递记录器对象。在一个工程中创建记录器,然后将其传递给其他工程。
以下是一个示例:
```cpp
#include <memory>
#include "spdlog/spdlog.h"
std::shared_ptr<spdlog::logger> logger;
void init_logger()
{
logger = spdlog::stdout_color_mt("my_logger");
logger->set_level(spdlog::level::debug);
}
void log_something()
{
logger->info("This is a log message from another project!");
}
int main()
{
init_logger();
log_something();
return 0;
}
```
在另一个工程中,您可以使用以下方法来访问相同的记录器:
```cpp
#include <memory>
#include "spdlog/spdlog.h"
extern std::shared_ptr<spdlog::logger> logger;
void log_something_else()
{
logger->info("This is a log message from another project!");
}
int main()
{
log_something_else();
return 0;
}
```
注意,您需要在另一个工程中声明`logger`,并使用`extern`关键字来访问它。这样,您就可以在多个工程中共享相同的记录器对象。