我想圍繞log4j2做一個包裝,做下面的事情: 1)有大約6個必需的字段,如event_name,action,desc等 2)有些領域,我想讓他們只使用某些值,如枚舉 3)日誌應該在Splunk的鍵值對中創建。log4j2的自定義包裝
下面是我的方法: 1)創建了一個名爲CustomLogger accepeting強制字段,記錄器和可變字段作爲關鍵值類 2)用戶可以調用諸如下面的方法:
CustomLogger.info(logger, transactionId, app_name, event_name,
"inside the loop", "inside the loop of the sample app",
CustomLogger.Result.success, "looped in", "loop_count",
String.valueOf(i));
方法定義:
public static String log(LogLevel logLevel, Logger logger,
String transactionId, String app_name, String event_name,
String action, String desc, Result result, String reason,
String... addtnlFields)
與方法問題: 1)不延長log4j的,不知道這是正確的方式 2)需要通過從E記錄儀很上課。如果可以避免的話 3)方法和行號會因爲從不同的方法調用而丟失
這將在我的內部應用程序中被廣泛使用,所以想要做到這一點。這種方法好嗎還是有更好的方法?
已經提出了票Log4j 2LOG4J2-695 https://issues.apache.org/jira/browse/LOG4J2-695 – Sibish
非常感謝Remko和Ralph回答所有問題並通過Splunk爲log4j2提供自定義記錄器解決方案CIM。吉拉票有所有細節:https://issues.apache.org/jira/browse/LOG4J2-695 – Sibish