61 votes

Log4Net "impossible de trouver les informations de schéma" messages

J'ai décidé d'utiliser log4net un logger pour un nouveau projet webservice. Tout fonctionne bien, mais je reçois beaucoup de messages comme celui ci-dessous, pour chaque log4net tag j'utilise dans mon web.config:

Ne pouvait pas trouver les informations de schéma pour l'élément "log4net'...

Ci-dessous sont les parties de mon web.config:

  <configSections>
    <section name="log4net" 
        type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level: %message%newline" />
      </layout>
    </appender>
    <logger name="TIMServerLog">
      <level value="DEBUG" />
      <appender-ref ref="RollingFileAppender" />
    </logger>
  </log4net>

Résolu:

  1. Copie de tous les log4net balise spécifique à une distincte xml-fichier. Assurez-vous d'utiliser .xml comme l'extension de fichier.
  2. Ajoutez la ligne suivante à l' AssemblyInfo.cs:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "xmlFile.xml", Watch = true)]

nemo a ajouté:

Juste un mot d'avertissement à quiconque suivez les conseils de l'réponses ce fil. Il est possible les risques de sécurité en ayant la log4net la configuration dans un fichier xml de la racine de service web, comme il sera accessible à tous par défaut. Juste être conseillé si votre configuration contient des données sensibles, vous pouvez pour le mettre ailleurs.


@wcm: j'ai essayé d'utiliser un fichier séparé. J'ai ajouté la ligne suivante à l' AssemblyInfo.cs

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

et de mettre tout ce qui concerne le log4net dans ce fichier, mais j'ai toujours les mêmes messages.

17voto

steve_mtl Points 480

J'ai eu un différent, et ont besoin de la syntaxe suivante:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]

qui diffère de xsl dernier post, mais fait une différence pour moi. Découvrez ce blog, il m'a beaucoup aidé.

10voto

James McMahon Points 14356

Juste un mot d'avertissement à quiconque de suivre les conseils des réponses dans ce thread. Il est possible que les risques de sécurité en ayant la log4net de configuration dans un fichier xml hors de la racine du service web, il sera accessible à tous par défaut. Juste être conseillé si votre configuration contient des données sensibles, vous voudrez peut-être mettre ça ailleurs.

5voto

Wheelie Points 2365

Je crois que vous voyez le message parce que Visual Studio ne sait pas comment valider la log4net section du fichier de config. Vous devriez être en mesure de résoudre ce problème en copiant le log4net XSD dans C:\Program Files\Microsoft Visual Studio 8\XML\Schémas (ou partout où votre Visual Studio est installé). Comme un bonus supplémentaire, vous devez maintenant obtenir l'assistance intellisense pour log4net

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X