繁体   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