14

ローテーションとアペンドで書き込むためのブーストログの設定方法は?

また、プログラムを再起動した後、ログ ファイルをクリアしないでください。

int init_log()
{
    typedef sinks::synchronous_sink< sinks::text_file_backend > file_sink;
    boost::shared_ptr< file_sink > sink( new file_sink (
       keywords::file_name = "app.log", // only one files
       // keywords::open_mode = (std::ios::out | std::ios::app), // is not append
       keywords::open_mode = (std::ios::out | std::ios::app), // is not rotated
       keywords::rotation_size = 10 * 1024
     ));
}
4

1 に答える 1

8

これを試してみてください (重要なのは、何らかのパターンを使用してログ名を追加することであり、 「app.log」のような名前を固定することではありません)。これにより、flre ローテーションが有効になり、作成された各ファイルにデータが追加されます。ログの消去に関しては、カスタム file_collector を指定していない限り、ログはそのまま残ります:)

typedef sinks::synchronous_sink< sinks::text_file_backend > file_sink;
boost::shared_ptr< file_sink > sink( new file_sink(
        keywords::file_name     = "app%m%d%Y_%H%M%S_%5N.log",   // file name pattern
        keywords::rotation_size = 10*1024                       // rotation size, in characters
        ));
于 2013-03-12T14:58:05.273 に答える