2

我正在升级一个应用程序,目前正在将 Spring 核心从 4.3 移动到 5.2(是的,尝试期待 LTS 版本的里程碑),它需要我们迁移到 log4j2。

到目前为止,我们遇到的问题是,我似乎找不到任何关于如何让 JAMon 使用这个新配置的信息。附加程序失败并显示以下消息:

java.lang.NoSuchMethodException: org.apache.log4j.api.LoggingEvent.<init>(Ljava/lang/String;Lorg/apache/log4j/Category;Jorg/apache/log4j/Priority...)

而且,在项目中,我们从维护者那里听到的最后一个消息是这个(看起来当前版本不支持将 appenders 更改为 log4j2)。

例如在 log4j.jsp 中,它导入

<%@ page import="com.jamonapi.MonitorFactory, org.apache.log4j.Logger, org.apache.log4j.PropertyConfigurator, java.util.Properties" %>

源代码中的 JAMonAppender 类说

public class JAMonAppender extends AppenderSkeleton {
    /* Prefix for this classes jamon monitor labels */
    private final String PREFIX = "com.jamonapi.log4j.JAMonAppender.";

    // any of these poperties can be overridden via log4j configurators.
    private int bufferSize = 100;

    private String units = "log4j"; // units in jamon montiors

所以它似乎是硬连线到ye olde log4j。有没有人设法使它工作?

4

2 回答 2

0

请注意,我是 jamonapi 的创建者。虽然,我有一段时间没有进行更新,但它仍然受支持,如果有人想要的话,我们可以添加一个 log4j 2 附加程序。我知道这是一个旧帖子,但让我知道你的想法......

编辑:从 jamon 2.82 起,JAMonAppender 已更新为与 log4j 2 一起使用。对于 log4j,它可以查看每个级别被调用了多少次(错误,信息),并允许您通过网络“跟踪”日志应用程序。它还监视应用程序的许多其他方面。这是 log4j2 的链接 - http://jamonapi.sourceforge.net/log4j_jamonappender.html

于 2020-02-17T03:07:38.140 回答
0

我想你上面有错字。该类应该是 org.apache.log4j.spi.LoggingEvent。Log4j2 和 SLF4J 都为 Log4j 1.x 提供了适配器,但它们都不包含 LoggingEvent 构造函数,更不用说与您缺少的签名匹配的构造函数了。但我真的不认为这是必要的(以前没有人要求过)。除非 JAMonAppender 以编程方式实例化,否则为 Log4j 创建 JAMonAppender 将相当简单。也就是说,JAMon 的最后一次更新是在 4 年前,所以如果 PR 被接受,我会感到惊讶。

我应该说清楚的一件事 - JAMonAppender 只能与 log4j 1.2 一起使用进行日志记录。如果您的目标是使用 Log4j 2 重写,则需要附加程序。

于 2019-08-08T03:25:38.247 回答