2014-04-22 35 views
1

我正在使用boost日誌,並且希望創建基本日誌主體文件:每小時開始時的新錯誤日誌(如果存在錯誤),並將其命名爲「file_%Y%m% d%H.log」。 我對這個增強庫有兩個問題: 1.如何在每個小時開始時旋轉文件? 對於rotation_at_time_interval參數,這是不可能的,因爲它會創建關於文件中第一個寫入記錄的新文件,並且文件名中的小時與該規則不匹配。是否有可能在一個文件中有多個rotation_at_time_point,或者是否有其他解決方案? 2.當文件超過一定的大小,我希望它啓動新文件,在這種情況下,它應該附加一些索引文件名。通過將rotation_size參數和%N添加到文件名稱中,它會在應用程序運行時一直增加N.我希望N在每個小時的開始時重置,就像我的文件名更改一樣。有沒有人有任何想法如何做到這一點與這個助推日誌庫?每小時增加一次日誌記錄

這是在工業中創建日誌文件的基本原則。我真的不明白如何使用專門用於創建日誌文件的庫來完成這項工作。

回答

0

圖書館本身並沒有提供一種方法來在每小時的乞討中旋轉文件,但是我有同樣的問題,所以我使用了函數包裝器,它在每小時的乞求中返回true。 我覺得這樣對我更好,因爲我可以控制代碼的效率。

從boost.org:

bool is_it_time_to_rotate(); 


void init_logging(){ 

boost::shared_ptr<sinks::text_file_backend> backend = 
    boost::make_shared<sinks::text_file_backend>(
     keywords::file_name = "file_%5N.log", 
     keywords::time_based_rotation = &is_it_time_to_rotate 
    ); 

}

對於第二個問題,我真的不undrestand很好。