Probleme mit der Dateirotation nach dem Hinzufügen eines Anhänge-Flags in Boost 1.59 log v2

Nach dem Hinzufügen des Append-Flags "keywords :: open_mode = std :: ios_base :: app "zur Dateisenke Die normale Dateirotation findet nicht statt, wenn die Datei die maximale Größe erreicht, wie im folgenden Code angegeben:

typedef sinks::synchronous_sink< sinks::text_file_backend > file_sink;
        boost::shared_ptr< logging::core > core = logging::core::get();
        boost::shared_ptr< file_sink > sink(new file_sink(
            keywords::file_name =  "/tmp/test.log", // log file with full path
            keywords::open_mode = std::ios_base::app, // append mode set
            keywords::rotation_size = 5000000
            ));
        sink->locked_backend()->set_file_collector(sinks::file::make_collector(
            keywords::target = "/tmp/",   // log file & target have same dir
            keywords::max_size = 5000000,
            keywords::min_free_space = 100000
            ));
        sink->locked_backend()->scan_for_files();
        sink->locked_backend()->auto_flush(true);
        core->add_sink(sink);

Boost Log Version: 1.59

Verhalten beobachtet: Nach jedem Startvorgang mit dem Boost-Logger. Die Protokollnachrichten werden an die vorhandene Protokolldatei angehängt, anstatt eine neue Protokolldatei zu erstellen. Wenn die Protokolldatei jedoch die maximale Größe erreicht, findet keine Richtlinie zur Erhöhung der Dateirotation statt, und es wird eine neue Protokolldatei erstellt, ohne dass die alte Protokolldatei in das Zielverzeichnis verschoben wird.

Erwartetes Verhalten Die Protokolldatei sollte mit Protokollmeldungen versehen und bei Erreichen der maximalen Größe ordnungsgemäß gedreht werden.

Bitte teilen Sie mir mit, ob es eine Lösung für dieses Problem gibt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage