Log4j字符串匹配 - 回调选项

问题描述:

我正在使用log4j进行我的应用程序日志记录。每当记录一些错误消息时,我想执行一些操作,例如发送套接字消息/发送陷阱/数据库更新。我可以看到,在log4j中,可以使用StringMatchFilter或LevelRange Filter来grep字符串。但是,是否有可能注册任何回调方法与log4j这将调用任何字符串匹配?我猜它可能是Jamon工具,但不想为这个简单的功能使用新的框架。Log4j字符串匹配 - 回调选项

您可以通过附加自己的appender来注册回调。只要确保从org.apache.log4j.AppenderSkeleton派生,所以你只需要实现append(LoggingEvent)方法。

AppenderSkeleton处理过滤,所以你可以平时<filter>配置添加到您的appender和你append方法才会被调用匹配事件。

+0

谢谢丹。看起来很简单,很棒。 – ihavprobs 2011-03-15 13:54:58

这些操作是否是您业务逻辑的一部分,还是只是存储日志信息的其他方式?

如果它是您业务逻辑的一部分,那么我认为您正试图在错误的位置附加它们。

如果你只是想要更多的方式来传输/存储你的日志,然后看看有不同的Appender实现。已经有很多种不同的Appender版本,并且将它们附加到相应的记录器中可能只是做你想做的。

如果这不是你想要的,请澄清你的要求。

+0

我不是试图存储日志;只是想在我的应用程序日志中记录错误消息时通知其他应用程序。 – ihavprobs 2011-03-15 10:21:17

+1

@shk:听起来像一个appender的工作。 – 2011-03-15 10:21:37

+0

您是否说过,可能使用SocketAppender并侦听服务器并在套接字服务器接收消息时执行任何操作? – ihavprobs 2011-03-15 10:31:37