延长Boost日志核心的使用寿命



我想为终止进程延长boost::log::core的生存期。

我知道文档中不建议这样做。但我试着使用核心的Schwarz计数器来保存它,直到全局变量的最后一个析构函数使用它

Core将共享指针与Meyer的singleton一起使用。有可能实现Schwarz计数器或漂亮的初始化核心吗?

core::get()方法向核心返回一个shared_ptr,它实现了Schwarz计数器。您可以在程序的正常操作期间(即main()执行期间(调用此方法,并将该指针保存在数据结构中,这些数据结构保证在终止期间存在。当shared_ptr存在时,您可以通过该指针访问核心(但不一定要通过core::get()(。

请注意,库提供的所有记录器也在内部保存指向核心的指针。例如,如果您在对象析构函数中执行终止,请使记录器成为该对象的成员,这样您就可以在销毁过程中发出简单的日志记录。

请注意,核心并不是库维护的唯一单例,其他单例也不受此方法的破坏。例如,在程序终止期间不能使用全局记录器。

最新更新