1
我想在一個appender中結合軋製時間和軋製尺寸,似乎在log4cxx中沒有合成軋製,對嗎?使用log4j CompositeTriggeringPolicy功能log4CXX
我想在一個appender中結合軋製時間和軋製尺寸,似乎在log4cxx中沒有合成軋製,對嗎?使用log4j CompositeTriggeringPolicy功能log4CXX
不,沒有。實際上,在log4j中也沒有實現這樣的組合策略,所以它不會被轉移到log4cxx。
我曾經有過編寫這種混合策略滾動文件appender(儘管在log4j中)的任務。我通過覆蓋FileAppender
來做到這一點,尤其是,該方法
// log4j
void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize);
// log4cxx
void setFile(const LogString& filename, bool append1, bool bufferedIO1, size_t bufferSize1, Pool& p);
,可持續記錄進程重新啓動後相應的日誌塊,並
// log4j
void subAppend(LoggingEvent event);
// log4cxx
virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
每個日誌條目滾動在條件是否爲真後進行測試。
在log4j/cxx中實現自己的appender的一個真正強大的功能是您可以在log4j.properties
中定義它的屬性並讓它們由庫設置。在Java中,你可以免費獲得它,這要歸功於反思;在log4cxx中,您只需編寫您的代碼
void setOption(const LogString& option, const LogString& value);
方法,其中您遍歷選項字符串並執行必要的初始化操作。
希望能幫到你,並且在合適的時間來臨。