De bons exemples à l'aide de java.util.la journalisation
Je veux utiliser les journaux dans mon programme. J'ai entendu parler de java.util.la journalisation, mais je ne sais pas comment commencer.
Sont là des exemples de ce que je peux faire avec l'exploitation forestière? Comment puis-je utiliser la journalisation dans mon propre programme?
- Vous pouvez commencer ici: slf4j.org/manual.html
- Je suis d'accord avec Steven Vascellaro. Je suis fatigué de voir les éléments utiles détruite en raison de la rubrique services de police à aucune fin. En outre, respectueusement en désaccord avec Jeremy, que l'OP a demandé à propos de java.util.la journalisation. Je suis également intéressé par natif d'enregistrement (merci pour la réponse, grwww!)
- Pour enregistrer des données dans une ligne : connectez-vous.log(Level.INFO "Mon message {0}", new Object[] { myDataId });
Vous devez vous connecter pour publier un commentaire.
java.util.la journalisation
vous permet d'éviter d'avoir à transporter un plus fichier jar dans votre application, et il fonctionne bien avec un bon Formateur.En général, en haut de chaque classe, vous devriez avoir:
Ensuite, vous pouvez simplement utiliser les différentes installations de la Enregistreur classe.
Utilisation
Level.FINE
pour tout ce qui est de débogage au plus haut niveau de flux d'exécution:Utilisation
Level.FINER
/Level.FINEST
à l'intérieur de la boucle et dans des endroits où vous ne pouvez pas toujours besoin de voir que beaucoup de détails lors du débogage de base des problèmes de flux:Utiliser le paramétrée versions de la journalisation des installations pour éviter de générer des tonnes de concaténation de Chaîne d'ordures que GC aura à suivre.
Object[]
comme ci-dessus n'est pas cher, sur la pile de l'allocation d'habitude.Avec la gestion des exceptions, toujours vous connecter à l'exception complète détails:
Je passe toujours
ex.toString()
que le message ici, parce que quand je "grep -n
" pour "Exception
" dans des fichiers journaux, je peux voir le message trop. Sinon, il va être sur la prochaine ligne de sortie généré par le vidage de pile, et vous devez avoir une version plus avancée du RegEx pour correspondre à la ligne en trop, qui, souvent, vous obtient plus de sorties que vous avez besoin de regarder à travers..fine()
méthode pour ouvrir une session, mais je n'arrive pas à faire de l'affichage de messages d'...Doit déclarer enregistreur comme ceci:
donc, si vous restructurer le nom de la classe qu'il suit.
J'ai écrit un article à propos de java enregistreur avec des exemples ici.
Il existe de nombreux exemples et également de différents types pour la journalisation. Jetez un oeil à la java.util.la journalisation paquet.
Exemple de code:
Sans coder en dur le nom de la classe:
Main.class.getSimpleName()
? De cette façon, refactoring outil va changer correctement si nécessaire et pourtant, il n'est pas aussi maladroit que votre deuxième solution.Main.class.getSimpleName()
à tous, si vous connaissez déjà le nom de la classe est "Principal"? Est-ce pour le type de saut de vérifier si quelqu'un change le nom de la classe?SLF4J est un meilleur système de connexion de la façade de Apache Commons Logging (ACL). Il a des ponts à d'autres journalisation des cadres, faire des appels directs à l'ACL, Log4J, ou Java Util Journalisation passer par SLF4J, de sorte que vous pouvez diriger toutes les sorties dans un fichier journal si vous le souhaitez, avec juste un journal de fichier de configuration. Pourquoi votre utilisation de l'application de multiples de journalisation des cadres? En raison de la 3e partie les bibliothèques que vous utilisez, surtout les plus anciens, probablement le faire.
SLF4J prend en charge différentes implémentations de journalisation. Il peut produire tout ce standard, l'utiliser Log4J, ou Logback (recommandé sur Log4J).
http://www.slf4j.org/
http://logback.qos.ch/
J'utiliserais minlog, personnellement. C'est extrêmement simple, comme la classe de log est à quelques centaines de lignes de code.
Je suggère que vous utilisez Apache commons logging utilitaire. Il est très évolutif et prend en charge des fichiers journaux distincts pour les différents enregistreurs de frappe. Voir ici.