web-dev-qa-db-fra.com

configuration log4j via argument (s) JVM?

Quelles variables dois-je définir/transmettre en tant qu'arguments à la machine virtuelle Java pour que log4j fonctionne correctement? Et par bien je veux dire pas se plaindre et imprimer sur la console. Puis-je voir un exemple typique?

Remarque: Je dois éviter de créer un fichier log4j.properties dans l'application.

116
jconlin

Avez-vous un fichier de configuration log4j? Il suffit de référencer en utilisant 

-Dlog4j.configuration={path to file}

où {chemin d'accès au fichier} doit être précédé de file:

145
Brian Agnew

La solution utilise l'argument JVM suivant:

-Dlog4j.configuration={path to file}

Si le fichier n'est PAS dans le chemin d'accès aux classes (dans WEB-INF/classes dans le cas de Tomcat) mais quelque part sur votre disque, utilisez file:, comme

-Dlog4j.configuration=file:C:\Users\me\log4j.xml

Plus d'informations et des exemples ici: http://logging.Apache.org/log4j/1.2/manual.html

152
30thh

Cela semble avoir changé (probablement avec log4j2) en:

-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml

Voir: https://logging.Apache.org/log4j/2.x/manual/configuration.html

22
D. L.

Je sais que cela a déjà été répondu, mais comme vous avez dit, ce n'est pas exactement ce que vous recherchez, je voudrais signaler l'alternative suivante:

Vous pouvez également utiliser une classe de configuration à la place des propriétés ou du fichier xml.

-Dlog4j.configuratorClass=com.foo.BarConfigurator

Voir http://logging.Apache.org/log4j/1.2/manual.html pour plus de détails.

20
Tim Büthe

En règle générale, tant que votre fichier log4j.properties se trouve sur le chemin d'accès aux classes, Log4j doit le récupérer automatiquement au démarrage de la machine virtuelle Java. 

11
Natalia

En retard pour la fête car depuis 2015, Log4J 1.x a atteint EOL .

Log4J 2.x à partir du option JVM devrait être -Dlog4j.configurationFile=<filename>


P.S. <filename> pourrait être un fichier relatif au chemin de classe sans le file: comme suggéré dans les autres réponses.

6
Vineet Menon

Le chemin relatif est également correct: 

Java -Dlog4j.configuration=file:".\log4j.properties" -jar com.your-1.0-SNAPSHOT.jar

ou 

Java -Dlog4j.configuration=file:".\log4j.xml" -jar com.your-1.0-SNAPSHOT.jar
0
ridox