2

我正在尝试在 Matlab 应用程序中从 log4j 1.2 切换到 log4j 2。

我已将 log4j-core-2.0-beta3.jar 和 log4j-api-2.0-beta3.jar 添加到我的 Matlab java 类路径中。

在我的 Matlab 类构造函数中,我:

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 中 log4j 的内置用法有关,用于 Matlab 自己的内部日志记录。我设法解决了与 logback 类似的问题,因为 logback 抱怨 Matlab 使用 log4j。classpath.txt 文件可能可以用来解决这个问题,即从 classpath.txt 中删除 log4j 但这可能会破坏 Matlab 的内部日志记录。我通过切换到不同的日志记录工具来解决这个问题。

4

1 回答 1

1

我的 Matlab (R2012a) 版本在后台使用 log4j,因此您的代码可能链接到旧版本的 log4j (R2012a\java\jarext\log4j.jar)。

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

于 2013-02-04T20:54:56.130 回答