2012-12-03 44 views
0

我試圖在Matlab應用程序中從log4j 1.2切換到log4j 2。如何從Matlab內使用Log4j2

我已將log4j-core-2.0-beta3.jar和log4j-api-2.0-beta3.jar添加到我的Matlab java類路徑中。

在我的Matlab的類的構造函數I:

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 

this.logger = LogManager.getLogger(myClassNameAsString); 

,但是當我檢查Logger對象我看到:

K>> this.logger 

ans = 

myClassNameAsString:ERROR in Default 

我有沒有配置文件定義,我期望的log4j給我默認配置和日誌到控制檯(根據log4j2文檔)

我做錯了什麼?

在Matlab裏面使用log4j2有問題嗎?

編輯:我相信這與matlab自帶內部日誌記錄的Matlab中log4j的內置使用有關。我設法解決了與logback類似的問題,因爲logback抱怨Matlab使用log4j。 classpath.txt文件可能可以用來解決這個問題,即從classpath.txt中刪除log4j,但這可能會破壞Matlab的內部日誌記錄。我通過切換到不同的日誌記錄工具解決了這個問題。

回答

1

我的Matlab版本(R2012a)在引擎蓋下利用log4j,因此您的代碼可能會鏈接到較舊版本的log4j(R2012a \ java \ jarext \ log4j.jar)。

查看位於Matlab Root:\ toolbox \ local目錄下的classpath.txt文件。

+0

謝謝,我認爲是這樣。我將盡力確認,但在短期內,我將從log4j移到logback。 – janh