在我的應用程式運行時,我想動態指定 log4j 組態檔的位置。
這是因為它不是捆綁在 JAR 中的資源,而是磁盤上的實際檔案,如果出現問題以提高日志記錄級別,則可以對其進行編輯。
使用 log4j v1.2 時,您可以使用 DOMConfigurator.configure(URL) 來執行此操作。
但是現在我已經升級到log4j-slf4j-impl / log4j v2,這個方法已經不存在了。
我可以直接看到如何配置log4j,但我想使用現有的slf4j兼容XML檔案而不必更改它。
任何人都可以幫忙嗎?
uj5u.com熱心網友回復:
Log4j 2.x 使用 aConfigurationFactory來決議組態檔。每種格式都有一個工廠和一個默認工廠。默認工廠試圖從檔案的檔案擴展名中猜測正確的格式:不幸的是,舊的 Log4j 1.2 和新的 Log4j 2.x 格式都有一個.xml擴展名,因此需要額外的配置。
為了決議 Log4j 1.2 XML 格式,您需要添加log4j-1.2.api工件并替換默認工廠:
import org.apache.log4j.xml.XmlConfigurationFactory;
import org.apache.logging.log4j.core.config.ConfigurationFactory;
ConfigurationFactory.setConfigurationFactory(new XmlConfigurationFactory());
在這之后設定一個簡單的:
Configurator.reconfigure(new URI("URI of your file"));
將您的配置應用到適當的LoggerContext.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/380771.html
