【发布时间】:2013-07-05 14:45:53
【问题描述】:
我创建了一个基于Boost Log的记录器机制。
我的代码基于example 中所示的琐碎记录器。
我想知道如何自动调用系统退出
exit(1)
(或任何其他自定义回调函数)每当发生致命错误时。
欢迎任何帮助!
更新:
解决办法是通过重载consume()方法来extend the backend sink。
【问题讨论】:
-
你可以自己写
boost::logsink。但是日志记录和错误处理是不同的问题,您可能不应该将它们混为一谈。此外,调用exit()是终止C++ 程序的一种不优雅的方式,因为RAII 对象不会被释放。当您遇到致命情况时,记录它并抛出异常有什么问题? -
你说得对,我确实有我的自定义接收器,
exit(1)并不优雅。它只是在我的脑海中发生/实现LOG(FATAL)作为进程终止异常,我认为它们可以“统一”。