configuration log4j via un ou des arguments JVM?

Quelles variables dois-je définir / transmettre comme arguments à la JVM pour que log4j fonctionne correctement? Et par correctement je veux dire ne 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.

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

-Dlog4j.configuration={path to file} 

où {path to file} doit être préfixé avec file:

La solution utilise l’argument JVM suivant:

 -Dlog4j.configuration={path to file} 

Si le fichier n’est PAS dans le classpath (dans WEB-INF/classes dans le cas de Tomcat) mais quelque part sur votre disque, utilisez le file: comme

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

Plus d’informations et d’exemples ici: http://logging.apache.org/log4j/1.2/manual.html

Je sais que cela a déjà été répondu, mais comme vous l’avez dit, ce n’est pas exactement ce que vous cherchez, 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.

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

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

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

Généralement, tant que votre fichier log4j.properties est sur le chemin d’access aux classes, Log4j doit simplement le détecter automatiquement au démarrage de la JVM.

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

Log4J 2.x et suivantes, l’ option JVM devrait être -Dlog4j.configurationFile=


PS pourrait être un fichier relatif au chemin de classe sans le file: comme suggéré dans les autres réponses.

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