2015-12-02 84 views
0

問題我跟着這個帖子:http://www.boost.org/doc/libs/1_59_0/libs/log/doc/html/log/detailed/attributes.html與升壓1.59 mutable_constant

log(string nameValue) { 
    attrs::mutable_constant<string> Name(nameValue); 
    logger::get().add_attribute("Name", Name); 
    Name.set(nameValue); 
    cout << "name is: " << Name; 
} 

只有一次的名稱屬性設置與nameValue並保持作爲含量的不同,每。 所以我使用set()方法來設置新的值。但是當我們在log()方法中傳遞一個新值時,名稱沒有被更新爲新的nameValue。

加速版本:1.59和操作系統:Ubuntu的15.04

任何解決這個問題。

在此先感謝。

回答

0

問題是您試圖在每次調用時添加屬性,並且只有第一次調用實際上成功。

add_attribute記錄器的方法在關聯容器上的行爲與insert類似。它返回一個迭代器和一個bool,它指示是否已添加新屬性或者具有相同名稱的屬性是否已存在於記錄器的屬性集中。在後一種情況下,插入不會發生,並且返回的迭代器指向集合中的現有屬性。

您應該使用返回的迭代器來設置新值。您將需要使用attribute_cast將通過迭代器獲得的通用attribute包裝轉換爲mutable_constant

+0

謝謝安德烈這個問題解決了。但我仍然面臨問題與升壓日誌旋轉不工作時,我們設置附加模式,我提出了單獨的問題:http://stackoverflow.com/questions/34037325/problems-with-file-rotation-after-adding-附加標誌,在升壓-1-59-LOG-V2 – SGPJ