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 自体の内部ログ用に Matlab に組み込まれている log4j の使用に関連していると思います。ログバックがMatlabのlog4jの使用について不平を言うという点で、ログバックで同様の問題を回避することができました。classpath.txt ファイルはおそらくこれを解決するために使用できます。つまり、classpath.txt から log4j を削除しますが、これにより Matlab の内部ログが壊れる可能性があります。別のログ ツールに切り替えることで、この問題を回避しました。