Log4jを正しく実行するには、JVMの引数として設定/渡す必要がある変数は何ですか?そして、適切に私は文句を言わず、コンソールに印刷しないことを意味します。典型的な例を見ることができますか?
注:アプリケーションでlog4j.propertiesファイルを作成しないようにする必要があります。
Log4j構成ファイルはありますか?を使用して参照するだけです
-Dlog4j.configuration={path to file}
{ファイルへのパス}の前にfile:
を付ける必要があります
ソリューションは、次のJVM引数を使用しています。
-Dlog4j.configuration={path to file}
ファイルがクラスパス(Tomcatの場合はWEB-INF/classes
)ではなく、ディスク上のどこかにある場合は、次のようにfile:
を使用します。
-Dlog4j.configuration=file:C:\Users\me\log4j.xml
これは(おそらくlog4j2で)変更されたようです:
-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml
参照: https://logging.Apache.org/log4j/2.x/manual/configuration.html
私はこれがすでに答えられていることを知っていますが、あなたが言ったので、これはあなたが探しているものとまったく同じではないので、次の代替案を指摘したいと思います:
プロパティまたはxmlファイルの代わりに構成クラスを使用することもできます。
-Dlog4j.configuratorClass=com.foo.BarConfigurator
詳細については、 http://logging.Apache.org/log4j/1.2/manual.html を参照してください。
一般的に、log4j.propertiesファイルがクラスパスにある限り、Log4jはJVMの起動時に自動的にそれを選択するだけです。
相対パスも大丈夫です:
Java -Dlog4j.configuration=file:".\log4j.properties" -jar com.your-1.0-SNAPSHOT.jar
または
Java -Dlog4j.configuration=file:".\log4j.xml" -jar com.your-1.0-SNAPSHOT.jar