7
votes

log4j conversionsPattern horodatage avec microsecondes

Je veux ajouter des microsecondes dans l'horodatage de chaque entrée de mes fichiers journaux générés avec log4j, est-il possible?

J'ai recherché dans la documentation officielle, mais il n'y a aucune mention d'unité sous les millisecondes.

Maintenant, j'ai un motif de conversion comme suit: xxx

dans le motif de conversion de date (% d ) je veux Pour ajouter microsecondes après la valeur des millisecondes ( SSS ), existe-t-il un moyen de le faire?


5 commentaires

Pourquoi avez-vous besoin d'horodatage microsecondes dans les messages de journal?


Parce que j'ai un fil de travail élevé intensif qui peut générer plus de 10 entrées de journal par milliseconde et je souhaite connaître les microsecondes intervalles entre eux ...


Dupliqué possible de Inclure des horodatages microsecondes dans la journalisation log4J?


@ Cœur La direction inverse du vote à la fermeture est probablement meilleure, car cette question contient un Réponse .


@Markrotteveel Fermer le vote rétracté, je voterai sur l'autre question, vous avez raison.


3 Réponses :


2
votes

Il est basé sur SimpleDateFormat et Cela ne prend pas en charge les formats sous-millisecondes, les microsecondes ne peuvent donc pas être rapportées.


0 commentaires

6
votes

Si vous souhaitez afficher des micro-secondes, vous devez ajouter ceci vous-même. Cela pourrait être fait avec un formateur personnalisé (au lieu de Patternformatter)


3 commentaires

Je vais écrire mon propre formal de modèle comme vous le suggérez est la seule solution, merci.


Par curiosité, où obtenez-vous votre horodatage micro-deuxième? J'ai trouvé que Log4J peut prendre plusieurs, sinon des centaines de micro-secondes, donc si je me soucie de micro-secondes, j'utilise mon propre enregistreur qui est sous-micro-seconde.


J'ai un travailleur qui traite une file d'attente de messages et en fonction de la charge qu'il peut traiter plus de 10 messages par milliseconde, et je connecte tous les messages en mode Trace.So à votre avis, il est préférable de ne pas compter sur log4j? Que pensez-vous de la connexion? Est-ce mieux ? Merci encore.



6
votes

À partir de Java 9 et log4j 2.11.0 , il est possible d'obtenir l'horodatage même avec des nanosecondes.

Voici les modèles prédéfinis spéciaux permettant d'obtenir une date ou une heure avec des microsecondes ou des nanosecondes:

  • motif: % d {absolu_micros} Exemple de sortie: 14: 34: 02 123456
  • motif: % d {absolu_nanos} exemple de sortie: 14: 34: 02,123456789
  • motif: % d {default_micros} Exemple de sortie: 2012-11-02 14: 34: 02 123456
  • motif: % d {default_nanos} Exemple de sortie: 2012-11-02 14: 34: 02,123456789

    Si vous avez besoin d'un modèle plus spécifique, utilisez la lettre de modèle " nano-de-seconde " n au lieu de " fraction de seconde "Lettre de motif S Par exemple % D {DD MMMAAAA AAAA: MM: SS, NNNN} à% D {DD MMMAAAAAA AAAI: MM: SS, NNNNNNNNN} donnera 02 nov. 2012 14: 34: 02w1234 à 02 nov. 2012 14: 34: 02,123456789 .

    Dans votre cas, comme vous avez besoin de millisecondes et de microsecondes, votre motif pourrait être quelque chose comme % d {dd / mm / aaaa: mm: ss, nnnnnn}

    log4j 2.11 ajoute un support limité pour les horodatages plus précis que millisecondes lors de la course sur Java 9.

    Pour plus de détails Veuillez vous reporter à https: //logging.apache .Org / Log4J / 2.x / Manuel / Layouts.html


0 commentaires