Problemas com a rotação de arquivos após adicionar sinalizador de acréscimo no Boost 1.59 log v2
Após adicionar o sinalizador de acréscimo "keywords :: open_mode = std :: ios_base :: app"para afundar arquivo, a rotação normal do arquivo não está acontecendo quando o arquivo atinge o tamanho máximo, conforme especificado no código abaixo:
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);
Versão do Boost Log: 1.59
Comportamento observado: Depois de cada vez que o processo usando o boost logger é iniciado; as mensagens de log estão sendo anexadas ao arquivo de log existente em vez de criar um novo arquivo de log. Mas quando o arquivo de log atinge o tamanho máximo, a política de rotação de arquivos não está acontecendo e um novo arquivo de log é criado sem mover o arquivo de log antigo para o diretório de destino.
Comportamento esperado: O arquivo de log deve ser anexado às mensagens de log e, quando atingir o tamanho máximo, deve ser rotacionado corretamente.
Informe-me se houver alguma solução para esse problema.