Est-il possible que log4j2 impressions de l'utilisateur fourni timestamp plutôt que le système de temps?
-
21-12-2019 - |
Question
J'écris une application qui utilise les données enregistrées avec des horodatages.Pour cet effet, j'ai un objet que responsable de connaître le temps actuel (qui est dans le passé, mais toujours monotone).
Je souhaite configurer log4j2, tels que les imprimés timestamp seront prises à partir de cet objet, et non à partir de l'ordinateur de la minuterie.Est-il possible?
Je vous remercie.
La solution
Oui, c'est possible.Vous pouvez spécifier la propriété système "log4j.Horloge" avec le nom de classe entièrement qualifié d'une classe qui implémente l' org.apache.logging.log4j.core.helpers.Clock
de l'interface.
Voir la documentation ici: http://logging.apache.org/log4j/2.x/manual/async.html#AllAsync
À partir de la version RC1, cela ne fonctionne que pour Async Bûcherons, mais dans la prochaine version cela fonctionne pour toutes les configurations.Notez que dans la prochaine version du noyau.les aides paquet a été déplacé à la base.util.
Voir aussi https://issues.apache.org/jira/browse/LOG4J2-628 pour plus de détails.