簡體   English   中英

如何將java.util.logging發送到log4j2?

[英]How to send java.util.logging to log4j2?

我正在開發一個使用NetBeans平台的項目。 在底層,NetBeans使用java.util.logging框架。

我想通過將java.util.logging綁定到log4j2來攔截這些日志調用。 這可能嗎?

之前的問題已被問到類似,但是特定於log4j而不是log4j2

更新2014/9/12:從版本2.1開始,Log4j 2包含一個不需要SLF4J的JUL網橋

無需自定義代碼。 兩件事情:

  1. 將以下jar放入類路徑:log4j-api-2.x,log4j-core-2.x和log4j-jul-2.x。

  2. 在對LogManager或Logger進行任何調用之前,將系統屬性java.util.logging.manager設置為org.apache.logging.log4j.jul.LogManager

Log4J2 FAQ頁面直觀地顯示了依賴關系: http ://logging.apache.org/log4j/2.x/faq.html#which_jars

我找到了一個解決方案:

NetBeans平台在org.netbeans.*命名空間之后命名logger。 要路由NetBeans日志調用,我只需創建一個Handler並使用org.netbeans記錄器注冊它:

public class CustomHandler extends Handler
{
    @Override
    public void publish(LogRecord record)
    {
        // Re-direct log calls here (e.g. send record to Log4j2 logger).
    }

    @Override
    public void flush() 
    {
    }

    @Override
    public void close() throws SecurityException
    {
    }
}

請務必注冊新的Handler並在必要時禁用父記錄器:

Logger logger = Logger.getLogger("org.netbeans");
logger.addHandler(new CustomerHandler());
logger.setUseParentHandlers(false);

暫無
暫無

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

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