Faire Logback inclure le “T” entre la date et l'heure dans son “%date” format strict de conformité à la norme ISO 8601
Par défaut, le Logback encodeur utilise un format de la date similaire à la ISO 8601 standard. Mais il manque le "T" dans le milieu entre la date et l'heure portions. Le T
fait pour faciliter l'analyse, et est requise par la norme (à moins que les parties privées en conviennent autrement).
Est-il une astuce pour obtenir Logback pour inclure le T
?
Ce...
2006-10-20T14:06:49,812
au lieu de cela...
2006-10-20 14:06:49,812
Je suppose que je pourrais re-créer l'ensemble de format lors de l'ajout d'un "T", mais je me demande si il y a un moyen plus simple.
OriginalL'auteur Basil Bourque | 2014-04-15
Vous devez vous connecter pour publier un commentaire.
Rapport De Bug
Il y a un rapport de bug à ce sujet sur Logback le JIRA page. Il n'y a pas beaucoup de développement depuis
24/Feb/10 3:57 PM
. J'ai juste voté pour attirer l'attention. Vous devriez aussi.Je voudrais donner mon propre format de date qui correspond à ISO 8601'.
Insérer "T"
Cela devrait faire l'affaire:
La
""
sont nécessaires pour rendre l',
travail, comme indiqué dans le la documentation.Que
<pattern>
élément appartient à votre Logback paramètre de configuration. Voici un exemplelogback.xml
fichier:Fuseau Horaire
À être plus entièrement conforme à la norme ISO 8601, et pour la plus utile de journalisation, vous devez inclure une zone de temps.
MODIFIER (Michael-O, 2014-06-15): C'est pas vrai, le fuseau horaire est absolue en option.
Pour inclure une zone de temps, passer un deuxième argument (voir la doc) à la
%date
. Passer le nom propre d'un fuseau horaire. Éviter les trois ou quatre lettres de fuseau horaire codes tels que "EST" comme ils sont ni uniques, ni standardisé. Par exemple, passerAustralia/Perth
. Généralement pour l'enregistrement nous voulons UTC (GMT) de temps, c'est à dire sans décalage. Dans ce cas, passerUTC
.Vous pouvez afficher le décalage de fuseau horaire que le nombre d'heures et de minutes dans le cadre de la date-heure dans le journal. Ajouter un
X
pour afficher le décalage de fuseau horaire dans le cadre de la date de la valeur temps.Ce...
...produit...
La
XXX
fonctionne en Java 7 et 8. Dans les versions antérieures de Java, vous pouvez être en mesure d'utiliser unZ
dans la définition du format de générer un décalage certain nombre qui manque un point-virgule.J'ai appris que l'ajout d'un
Z
à la fin de ce format invites Logback 1.1.2 pour ajouter le décalage par rapport à UTC, dans le format+HHMM
(sans virgule). Si la valeur est définie pour l'UTC, Logback 1.1.2 ajoute+0000
(pas le plus compactZ
). Donc, ce%date{"yyyy-MM-dd'T'hh:mm:ss,SSSZ", UTC}
génère cette2014-04-16T09:59:24,009+0000
.Oui, vous pouvez définir le fuseau horaire dans Logback. C'est ce que j'ai montré, l'avis de la 2ème argument (voir la doc) pour le
%date
, où j'ai passéUTC
. Vous pouvez passer à la nom d'un fuseau horaire, commeAustralia/Perth
. Je préfèreZ
au lieu de+0000
, mais les deux sont acceptables dans ISO 8601. À mon avis, le décalage de fuseau horaire doit être la valeur par défaut, comme une date-heure sans décalage horaire, c'est comme une lecture de la température sans Celsius/Fahrenheit échelle.Encore un autre tweak: à l'Aide de
XXX
plutôt queZ
rend ISO 8601 style décalages avec un deux-points. Bonus: pour Zulu time (UTC +00:00) un "Z" est imprimé. Cette fonction peut nécessiter de Java 7, 8, ou plus tard (pas sûr lorsqu'il a été ajouté). Je suggère donc de:%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}
Strictement parlant, ils sont facultatifs, oui. Mais cela ne veut pas dire que c'est une bonne idée de laisser des informations de fuseau horaire.
OriginalL'auteur Sotirios Delimanolis