C++ Boost日志:应用程序崩溃时文件旋转不起作用

C++ Boost日志:应用程序崩溃时文件旋转不起作用,c++,c++11,logging,boost,boost-log,C++,C++11,Logging,Boost,Boost Log,我在使用Boost日志::add_file_log进行文件旋转时遇到了一个问题 接收器设置使用以下设置。在这里列出。它们是关键字::文件名、关键字::目标、关键字::旋转大小、关键字::最大大小、关键字::最大文件、关键字::自动刷新、关键字::扫描方法 正常情况下的文件旋转工作流程(应用程序未崩溃时): 当当前文件的大小超过10 MB时,将创建一个新文件。应用程序将开始写入一个新文件,当它达到旋转大小时,它将被旋转。如果此时,存储器中文件的总大小超过max_size,则会删除较旧的文件,以满足

我在使用Boost日志::add_file_log进行文件旋转时遇到了一个问题

接收器设置使用以下设置。在这里列出。它们是关键字::文件名、关键字::目标、关键字::旋转大小、关键字::最大大小、关键字::最大文件、关键字::自动刷新、关键字::扫描方法

正常情况下的文件旋转工作流程(应用程序未崩溃时): 当当前文件的大小超过10 MB时,将创建一个新文件。应用程序将开始写入一个新文件,当它达到旋转大小时,它将被旋转。如果此时,存储器中文件的总大小超过max_size,则会删除较旧的文件,以满足max_size的要求

崩溃场景中的文件旋转工作流程: 在应用程序崩溃的情况下,旋转大小永远不会命中,因此不会检查最大大小,因此在崩溃场景中不会发生文件旋转

因此,在运行此应用程序的计算机上(该应用程序持续崩溃),即使总大小(目标文件夹中的文件大小之和)超过最大大小,也不会删除旧文件

由于外部因素以及机器重新启动,此应用程序中可能会发生崩溃&将有许多机器运行此应用程序。此外,如果文件夹大小超过了最大大小,则需要部署应用程序的新版本,其新日志文件需要达到限制,只有这样,旧文件才会被删除,这是一个问题

在我的例子中,可用磁盘大小限制是硬绑定的,由于这个问题,如果大小超过限制,则还有其他含义

这是一个可以涵盖的有效场景。因此,修复崩溃不符合此处的要求

关键字::enable_final_rotation有用吗?这是用来干什么的

我们如何使用boost解决这个问题?
谢谢。

崩溃是未定义行为的结果。未定义的行为意味着:没有任何保证。您可以通过找出应用程序崩溃的原因并进行修复来解决此问题。标记-@Andrey SemashevTags在Stackoverflow上不能像那样工作。您能帮我标记Andrey-SamI不能。没有人能。除非有人积极参与某个问题,否则他们不能被标记。他们必须先参与一个问题,然后才能被标记。