簡體   English   中英

Log4cplus:在gcc 4.8.5的過濾器中集成正則表達式

[英]Log4cplus: integrate regular expression in filters on gcc 4.8.5

Log4cplus具有spi :: StringMatchFilter過濾器,該過濾器使字符串或子字符串與日志消息(事件消息)的簡單匹配成為可能。

我有gcc版本4.8.5,我想做的就是向Log4cplus添加使用正則表達式過濾日志消息的功能,而不僅僅是簡單的子字符串(簡單的strstr搜索)。

我嘗試使用std :: regex和std :: tr1 :: regex庫,但是不幸的是,它們的功能在gcc 4.8編譯器上並未完全實現。

我將很高興獲得如何實現目標的方向或想法? (我不能升級我的gcc,也不能使用boost庫)。

我知道一種選擇是通過使用該庫編譯Log4cplus Makefile來使用PCRE庫,並在Log4cplus Filter.cxx src代碼中添加正則表達式函數,但是我不確定如何修改Log4cplus Makefile以鏈接到PCRE庫(在何處以及如何添加PCRE庫鏈接)。

如有任何建議,我將不勝感激。

我認為這是一個太寬泛的問題。

您不需要修改log4cplus本身。 您可以將過濾器放入自己的應用程序代碼中,並在工廠注冊表中注冊過濾器:

#include <log4cplus/spi/factory.h>

// Into main() or some other convenient place:

log4cplus::spi::FilterFactoryRegistry& filter_reg = log4cplus::spi::getFilterFactoryRegistry();

LOG4CPLUS_REG_PRODUCT (filter_reg, "your::ns::", YourFilterClassNameHereInYourNs, your::ns::, 
    log4cplus::spi::FilterFactory);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM