【问题标题】:Log4j string matching - callback optionsLog4j 字符串匹配 - 回调选项
【发布时间】:2011-03-15 10:13:32
【问题描述】:

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

【问题讨论】:

    标签: java jakarta-ee log4j


    【解决方案1】:

    您可以通过附加自己的附加程序来注册回调。只需确保派生自 org.apache.log4j.AppenderSkeleton,因此您只需实现 append(LoggingEvent) 方法即可。

    AppenderSkeleton 处理过滤,因此您可以将通常的 <filter> 配置添加到您的 appender,并且您的 append 方法只会被调用匹配事件。

    【讨论】:

    • 谢谢丹。看起来简单而伟大。
    【解决方案2】:

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

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

    如果您只是想要更多方式来传输/存储您的日志,那么请查看不同的Appender 实现。已经有大量不同的Appender 版本,将它们附加到适当的记录器可能会满足您的需求。

    如果这不是您想要的,请说明您的要求。

    【讨论】:

    • 我不想存储日志;只是想在我的应用日志中记录错误消息时通知其他应用程序。
    • @shk:听起来像是 appender 的工作。
    • 你是说,可能使用 SocketAppender 并作为服务器监听并在套接字服务器收到消息时执行任何操作?
    • @shk:是的,这是一种方式。您还可以使用SMTPAppenderJMSAppenderNTEventLogAppender、... 任何一个适合您的需求。
    猜你喜欢
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多