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.
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:
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
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
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.
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.
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.
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