我有一台使用boost.asio服务的服务器。我使用boost.log来记录异步接收器。 asio_io_service在自己的线程中启动。在启动服务器之前,记录器在主线程中初始化。服务器接受与async_accept的连接,并异步读取和发送消息。
现在我遇到了问题,记录器只在服务器正在执行某些操作时记录消息,例如接收消息。当我在记录器初始化之后和启动服务器之前记录消息时,只有在服务器收到第一条消息后才能看到此日志消息。但即使没有服务器动作发生,我也想记录消息。你知道问题是什么以及如何解决它吗?
答案 0 :(得分:3)
好的,相关的stackoverflow-questions给了我答案:)默认情况下禁用了auto_flush。因此,记录器初始化中的这一行是解决方案:
sink->locked_backend()->auto_flush(true);