işlevselliği metin lavaboya inşa edilmiştir Yani
ve the documentation belirli boyutlarda ve zaman zaman döndürmek için dosya adı deseni ve kurallar belirlemek için bir örnek içerir:
// The function registers file sink in the logging library
void init_logging()
{
boost::shared_ptr<logging::core> core = logging::core::get();
boost::shared_ptr<sinks::text_file_backend> backend =
boost::make_shared<sinks::text_file_backend>(
// file name pattern
keywords::file_name = "file_%5N.log",
// rotate the file upon reaching 5 MiB size...
keywords::rotation_size = 5 * 1024 * 1024,
// ...or at noon, whichever comes first
keywords::time_based_rotation = sinks::file::rotation_at_time_point(12, 0, 0)
);
// Wrap it into the frontend and register in the core.
// The backend requires synchronization in the frontend.
typedef sinks::synchronous_sink<sinks::text_file_backend> sink_t;
boost::shared_ptr<sink_t> sink(new sink_t(backend));
core->add_sink(sink);
}
yapmak için görünüşte hiçbir yolu yoktur kütüphane bu kurulum ile mevcut dosyalara eklenir. Belgede "Döndürülmüş dosyaları yönetme" başlığının altında gösterildiği gibi sink
'u oluşturmadan önce backend->scan_for_files();
numaralı telefonu aramanız gerekir, ancak bu yalnızca kitaplığın temizlenmeden önce önceki günlüklerin üzerine yazmasını engeller.
Bu konu Şubat 2013'te bir geliştirme posta listesinde ortaya çıktığında, kitaplık yazarı, geçerli tasarım kapsamında yapılamayan adding support for appending would be a nontrivial change açıkladığını açıkladı.
Ben backend- kullanmak> scan_for_files(); Programımda, ancak bu koda başladığınızda program çöktü. Bunun hakkında bir fikrin var mı? –
Rotasyon çalışıyor, ancak ekleme ne olacak? Bir program, her bir sonraki program için, günlük dosyası döndürme sınırlarına ulaşana kadar, son günlüğe eklenmelidir. Bu kod, her bir çalışmada yeni bir günlük dosyası oluşturur ve 'scan_for_files' ekleme eklenmesinin bir etkisi yoktur. – ixe013
Haklısınız, Ixe013. Cevabımı değiştirdim. –