J'ai un SimpleFormatter pour l'exploitation forestière dans mon application avec la chaîne
"%1$tF %1$tT %4$-7s %2$s %5$s%6$s%n"
Je voudrais utiliser le nom simple de classe plutôt que le nom canonique. Y at-il une option de format que je peux utiliser avec le 2 champ $? Ou est-ce besoin d'écrire un nouveau gestionnaire?
Par exemple, plutôt que
2019-02-06 07:09:09 INFO simplex.tools.SIMPLEXScheduler main Start
Je voudrais voir 2019-02-06 07:09:09 INFO SIMPLEXScheduler main Start
Y at-il une option de format que je peux utiliser avec le 2 champ $?
Le SimpleFormatter ne supporte que la fonctionnalité dans le java.util.Formatter . À l' heure actuelle il n'y a aucun moyen de formater le nom de classe comme nom de classe simple.
Ou est-ce besoin d'écrire un nouveau gestionnaire?
Une option est d'écrire une nouvelle java.util.logging.Formatter . Il y a quelques hacks que vous pouvez faire en installant un java.util.logging.Filter pour changer le nom de la classe , mais vous devez éviter de faire cela. Utilisez LogP place comme suggéré par PJMeisch
Avertissement: Je suis un développeur de contenu pour com.sun.mail.util.logging package inclus dans le JavaMail projet.
Si vous avez accès à JavaMail vous pouvez utiliser le com.sun.mail.util.logging.CompactFormatter qui imprime uniquement le nom de classe simple. Le compromis est qu'il imprime des traces de pile compacte pour les exceptions. Les arguments de 1 à 6 sont du même ordre que le SimpleFormatter peut donc être utilisé le même motif.
Si vous ne voulez pas inclure JavaMail vous pouvez ensuite utiliser la com.sun.mail: journalisation mailhandler artefact à la place.