2012-05-14 14 views
9

¿Cómo configurar el registro de refuerzo, para escribir con rotación y anexar?¿Cómo configurar el registro de refuerzo, para escribir con rotación y anexar?

Y después del programa de reinicio, no borre el archivo de registro.

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 
    )); 
} 
+1

no sé cómo hacer esto, pero log4cpp hace todo esto y es ampliamente utilizado. http://log4cpp.sourceforge.net/api/classlog4cpp_1_1RollingFileAppender.html –

+0

posible duplicado de [Boost.Log - cómo configurar un backend de sumidero de texto para anexar archivos girados] (http://stackoverflow.com/questions/8418917/ boost-log-how-to-configure-a-text-sink-backend-to-append-to-rotated-files) –

Respuesta

5

Por favor, intente esto a cabo (la clave está añadiendo el nombre del registro utilizando algún patrón y no poniendo su nombre como "app.log") lo que permitirá la rotación CONTRA INCENDIOS y los datos se agregará a cada uno creado archivo. En cuanto a la limpieza de registro, siempre y cuando no se ha especificado file_collector costumbre, sus registros deben permanecer intactos :)

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 
     )); 
+5

Los datos de registro se deben anexar al mismo archivo de registro, para cada invocación de programa, hasta que se alcance el tamaño de rotación . Con ese código, cada ejecución crea un nuevo archivo de registro. – ixe013

Cuestiones relacionadas