Je commence mon application sur le serveur Linux avec une commande commeRuntimeExceptions de capture dans l'application Java et les envoyer par e-mail
/usr/local/bin/jsvc \
-home /usr/local/jdk1.8.0_111 \
-cp /opt/myapp/myapp.jar:/opt/myapp/lib/* \
-user myappuser \
-outfile /opt/myapp/out.log \
-errfile /opt/myapp/error.log \
-pidfile /opt/myapp/myapp.pid \
com.example.MyApp
J'utilise log4j
pour l'exploitation forestière dans mon application et il a sa propre configuration décrite dans log4j.properties
qui se trouve à l'intérieur myapp.jar
.
Je veux être en mesure d'attraper toute exception qui se passe dans l'application et de me l'envoyer par e-mail. J'ai configuré org.apache.log4j.net.SMTPAppender
dans log4j.properties
à cet effet.
Mais actuellement RuntimeException
, comme NullPointerException
sont imprimés juste à stderr
qui jsvc
redirige vers error.log
sans appliquer log4j
modèle de mise en forme.
Est-il possible ou devrais-je exécuter l'application sans jsvc
wrapper comme
nohup java -jar /opt/myapp/myapp.jar &
ou est-il une meilleure solution?