簡體   English   中英

在 Spring 5 和 log4j2 中使用 JAMon

[英]Using JAMon with Spring 5 and log4j2

我正在升級當前正在將 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...)

而且,在項目,從維護聽到最后,我們為這個(貌似目前的版本不支持更改追加程序來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。 有沒有人設法讓它工作?

我想你上面有一個錯字。 該類應該是 org.apache.log4j.spi.LoggingEvent。 Log4j2 和 SLF4J 都為 Log4j 1.x 提供適配器,但它們都不包含 LoggingEvent 構造函數,更不用說與您缺少的簽名匹配的構造函數。 但我真的不認為這是必要的(以前沒有人要求過)。 除非以編程方式實例化 JAMonAppender,否則為 Log4j 創建 JAMonAppender 將相當簡單。 也就是說,JAMon 的最后一次更新是 4 年前,所以如果 PR 被接受,我會感到驚訝。

我應該澄清的一件事 - JAMonAppender 只能與 log4j 1.2 一起使用進行日志記錄。 如果您的目標是使用 Log4j 2 重寫,則將需要附加程序。

請注意,我是 jamonapi 的創建者。 盡管如此,我已經有一段時間沒有更新了,它仍然受到支持,如果有人想要的話,我們可以添加一個 log4j 2 appender。 我知道這是一個舊帖子,但讓我知道你的想法......

編輯:從 jamon 2.82 開始,JAMonAppender 已更新為與 log4j 2 一起使用。對於 log4j,它能夠查看每個級別被調用的次數(錯誤、信息),並允許您通過網絡“拖尾”日志應用程序。 它也監視應用程序的許多其他方面。 這是 log4j2 的鏈接 - http://jamonapi.sourceforge.net/log4j_jamonappender.html

暫無
暫無

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

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