Ich verwende mvn exec:java -Dexec.mainClass=my.Class
, um auf der Befehlszeile ausgeführt werden. Während das Programm läuft, habe ich eine Debug-Ausgabe, die ich gerne protokollieren würde.log4j.properties ignoriert, wenn mvn exec verwendet: java
Ich benutze private static Logger logger = LoggerFactory.getLogger("mylogger");
, um den Logger zu initialisieren. Ich habe es so in log4j.properties konfiguriert:
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
jedoch logger
hat die Klasse org.slf4j.impl.JDK14LoggerAdapter
und scheint alle Einstellungen in log4j.properties
zu ignorieren - es ist zu STDERR mit lokalisierten Warnungen und Informationen anzumelden.
Meine relevanten Maven Abhängigkeiten:
<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>
Wie erhalte ich meine benutzerdefinierte konfiguriert Logger, wenn mvn exec:java
mit? Meine log4j.properties-Konfiguration funktioniert einwandfrei, wenn Sie den Rest der Spring-Anwendung mit Jetty ausführen.
Ich werde untersuchen, aber ich habe nicht 'slf4j-jdk14' in meinem pom.xml ... – tholu
try mvn Abhängigkeit: Baum, ist es wahrscheinlich transitiv –
ich den Täter' slf4j-jdk14' im 'exec gefunden -maven-plugin 1.4.0' in 'META-INF/maven/plugin.xml', also die Frage ist, wie ich' mvn exec: java' sage, 'slf4j-jdk14' nicht zu benutzen? – tholu