En utilisant simplement le nom de la classe dans formatter d'enregistrement java

Hari Nair:

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

jmehrens:

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.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=211240&siteId=1
conseillé
Classement