Вопрос по c++ – Как настроить лог буста, для записи с вращением и добавлением?

11

Как настроить лог буста, для записи с вращением и добавлением?

И после перезапуска программы не очищайте файл журнала.

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
     ));
}
Я не знаю, как это сделать, но log4cpp делает все это и широко используется.log4cpp.sourceforge.net/api/… Steve Townsend

Ваш Ответ

1   ответ
5

попробуйте это (ключ добавления имени журнала, используя некоторыеpattern и без фиксирования его имени, такого как «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
        ));
Данные журнала должны добавляться в один и тот же файл журнала для каждого вызова программы, пока не будет достигнут размер поворота. С этим кодом каждый прогон создает новый файл журнала.

Похожие вопросы