Dans Log4j2, comment puis-je associer un Schéma XML log4j2.xml?
J'ai donné la nouvelle Log4j2 un aller. Il semble, à partir de la documentation sur les migrations, que le Schéma XML/DTD spécification a été abolie.
Qui apparaît comme une étape vers l'arrière. Sûrement, il doit être possible d'associer un Schéma XML ou une DTD avec mon log4j2.xml
pour aider à l'écrire et de validation. Je n'ai pas été en mesure de trouver quelque chose d'utile dans la documentation, et je n'ai pas trouvé le Schéma XML ou DTD lui-même.
: Dans Log4j2, comment dois-je associer un Schéma XML avec log4j2.xml
?
- Si vous voulez juste pour éviter par exemple de l'Éclipse du avertissement pour le fichier XML, jetez un oeil à ce qui suit réponse à "Pas de contraintes de la grammaire (DTD ou schéma XML) a été détectée pour le document" par @Pub.
- Jetez un oeil à stackoverflow.com/a/10852980/592355.
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que c'est possible d'avoir un schéma/DTD avec log4j2. Récemment, j'ai écrit une coutume appender, et à l'appui de l'appender mon
log4j2.xml
ressemble à ceci:Les choses importantes à noter que j'ai un tout personnalisé
CyclicBuffer
élément, et qu'il a complètement personnalisébufferSize
attribut. Jetez un oeil à la documentation entourant@PluginFactory
et@Plugin
pour plus de détails.En raison de cette personnalisation, je ne pense pas que le XML peut être validés par le biais d'une norme, d'un commun XSD/DTD. Au lieu de cela, je pense que vous aurez besoin pour créer vos propres XSD si vous souhaitez valider le XML.
Une chose importante à noter, c'est que dans mon XML j'ai:
<configuration status="ERROR"
. Lorsque cela est présent log4j2 affichera les erreurs associées à une configuration incorrecte lors de l'exécution. Bien que pas aussi pratique que la validation XML, il est également très utile!Espère que c'est de l'aide,
Muel.
<Appender type="CyclicBuffer">
fonctionne ainsi: logging.apache.org/log4j/2.x/manual/...; glory1 a élaboré sur cette il y a 3 ans.S'il vous plaît re-lire le Log4J2 de la documentation sur XML de configuration et vous trouverez ces 2 endroits:
et un peu plus loin:
Donc si vous souhaitez utiliser la validation de schéma XML pour Log4j2 puis utilisez seulement le Strict format XML.
<Configuration strict="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=blob_plain;f=log4j-core/src/main/resources/Log4j-config.xsd">
https://raw.githubusercontent.com/apache/logging-log4j2/master/log4j-core/src/main/resources/Log4j-config.xsd
Je n'arrive pas à trouver une référence à la XSD sur le Log4J2 site web, mais si vous télécharger la 2.0 beta 5, vous constaterez qu'il contient un Log4J 2 schéma (Log4J-V2.0.xsd) dans le chemin d'accès de base/src/main/resources.
Comme l'a déclaré Muel, il est tout à fait possible pour des appenders. À cause de cela que je crois qu'il ne fonctionne que si vous utilisez le strict="true" dans le nœud configuration.
Voir: http://logging.apache.org/log4j/2.x/manual/configuration.html#ConfigurationSyntax
J'ai utilisé le schéma de l'attribut à ajouter à la configuration, et il semble la plupart du temps de travail.
Voici un exemple:
Je dis "la plupart" en raison d'un problème que j'ai trouvé que même certains documenté attributs valides (par exemple, monitorInterval) sont manquants dans le fichier XSD.
J'espère que les futures versions précises XSD de la stricte format seront disponibles.
Espère que c'est de l'aide.
-Steve
Mise à jour:
Voir LOG4J2-170 concernant le problème avec la validation XSD
log4j-core-2.6.2.jar/Log4j-config.xsd
, vous pouvez toujours copier et de les ajouter cet attribut.Fonctionne pour moi avec eclipse:
ou contre tagged version: