私はmvn exec:java -Dexec.mainClass=my.Class
を使用してコマンドラインで実行しています。プログラムが実行されている間、デバッグ出力があります。これはログに記録します。mvn execを使用するとlog4j.propertiesが無視されます。
私はprivate static Logger logger = LoggerFactory.getLogger("mylogger");
を使用してロガーを初期化します。私はlog4j.propertiesでこのようにそれを設定している:
log4j.appender.mylogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.mylogger.Threshold=DEBUG
log4j.appender.mylogger.File=logs/mylogger.log
log4j.appender.mylogger.DatePattern=.yyyy-MM
log4j.appender.mylogger.layout=org.apache.log4j.PatternLayout
log4j.appender.mylogger.layout.ConversionPattern=%d{ISO8601} [%5p] %C{1}:%L - %m%n
log4j.additivity.mylogger=false
はしかし、logger
はクラスorg.slf4j.impl.JDK14LoggerAdapter
を持っており、log4j.properties
のすべての設定を無視しているようだ - それはローカライズされた警告とに関する情報をSTDERRにログインしています。
マイ関連Mavenの依存関係:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
mvn exec:java
を使用しているとき、私は私のカスタム構成されたロガーを取得するにはどうすればよいですか? Jettyで残りのSpringアプリケーションを実行しているとき、私のlog4j.properties設定は正常に動作します。
私はpom.xmlに 'slf4j-jdk14'を持っていません... – tholu
mvn dependencyを試してください:tree、おそらく推移 –
' slf4j-jdk14'が 'exec 'maven-plugin 1.4.0'を' META-INF/maven/plugin.xml'に追加したので、 'mvn exec:java'に' slf4j-jdk14'を使わないように教えるにはどうしたらいいですか? – tholu