Welche Variablen muss ich als Argumente an die JVM setzen/übergeben, damit log4j ordnungsgemäß ausgeführt wird? Und mit richtig meine ich nicht beschweren und auf die Konsole drucken. Kann ich ein typisches Beispiel sehen?
Hinweis: Ich muss vermeiden, eine log4j.properties-Datei in der Anwendung zu erstellen.
Haben Sie eine log4j-Konfigurationsdatei? Verweise es einfach mit
-Dlog4j.configuration={path to file}
wo {Pfad zur Datei} sollte file:
vorangestellt werden
Die Lösung verwendet das folgende JVM-Argument:
-Dlog4j.configuration={path to file}
Befindet sich die Datei NICHT im Klassenpfad (in WEB-INF/classes
bei Tomcat), aber irgendwo auf Ihrer Festplatte, verwenden Sie file:
wie
-Dlog4j.configuration=file:C:\Users\me\log4j.xml
Weitere Informationen und Beispiele hier: http://logging.Apache.org/log4j/1.2/manual.html
Dies scheint sich (wahrscheinlich mit log4j2) geändert zu haben:
-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml
Siehe: https://logging.Apache.org/log4j/2.x/manual/configuration.html
Ich weiß, dass dies bereits beantwortet wurde, aber da Sie sagten, dies ist nicht genau das, wonach Sie suchen, möchte ich auf die folgende Alternative hinweisen:
Sie können auch eine Konfigurationsklasse anstelle der Eigenschaften oder der XML-Datei verwenden.
-Dlog4j.configuratorClass=com.foo.BarConfigurator
Weitere Informationen finden Sie unter http://logging.Apache.org/log4j/1.2/manual.html .
Solange sich Ihre Datei "log4j.properties" im Klassenpfad befindet, sollte Log4j sie beim Start der JVM normalerweise automatisch abholen.
Log4J 1.x hat zu spät auf die Party gekommen, da seit 2015 EOL erreicht wurde.
Log4J 2.x oder höher die JVM-Option sollte -Dlog4j.configurationFile=<filename>
sein
P.S. <filename>
könnte eine Datei sein, die relativ zum Klassenpfad ist, ohne den file:
, wie in den anderen Antworten vorgeschlagen.
Relativer Pfad ist auch ok:
Java -Dlog4j.configuration=file:".\log4j.properties" -jar com.your-1.0-SNAPSHOT.jar
oder
Java -Dlog4j.configuration=file:".\log4j.xml" -jar com.your-1.0-SNAPSHOT.jar