2011-08-01 4 views
2

J'essaie d'utiliser log4net avec un RollingFileAppender sur IIS 7.5/Server 2008 R2. Toutefois, la configuration de mon ancienne boîte IIS 6/Server 2003 ne semble plus fonctionner, je ne vois tout simplement pas les fichiers journaux en cours de création, voici ce que j'ai configuré:log4net RollingFileAppender et IIS 7.5

Dans Web.config (à l'intérieur <configSections>)

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 

Dans le même fichier (intérieur <configuration>)

<log4net> 
     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> 
      </layout> 
     </appender> 
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="..\\logs\\App" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <param name="StaticLogFileName" value="false" /> 
     <datePattern value=".yyyyMMdd.lo\g" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date | [%thread] | %-5level | %logger | %message %newline" /> 
     </layout> 
    </appender> 
    <logger name="AppLogger" additivity="false"> 
     <level value="All"/> 
     <appender-ref ref="ConsoleAppender"/> 
     <appender-ref ref="LogFileAppender"/> 
    </logger> 
</log4net> 

l'intérieur a finalement Global.asax je:

protected void Application_Start() 
{ 
    log4net.Config.XmlConfigurator.Configure(); 
} 

Cela a fonctionné sur le serveur 2003 et je peux faire la procédure normale d'obtenir une référence à l'enregistreur et en appelant les différentes méthodes (Debug, Error, etc.). Avec IIS 7.5/Server 2008, tout le code s'exécute correctement (toutes les pages semblent toujours correctes), mais il n'y a pas de journaux dans le répertoire de sortie du journal.

Est-ce que quelqu'un a vu ceci avant/a une solution de contournement?

Merci!

Répondre

7

Il est très probablement un problème d'autorisations où l'utilisateur (réSEAU) en cours d'exécution dans le cadre du processus qui est en train d'écrire les fichiers journaux ne dispose pas des autorisations d'écriture sur ce répertoire que vous essayez de vous connecter. Vous devez vous assurer que cet utilisateur a des permissions d'écriture sur le dossier dans votre config.

+2

j'aurais juré que j'ai vérifié que - mais je revérifié et comme vous l'avez dit je besoin d'ajouter des autorisations Modifier/écriture au compte utilisateur IIS (qui est IIS_IUSRS, non RéSEAU). Ça semble fonctionner maintenant ... Merci! – debracey

+0

Ouais je n'étais pas vraiment sûr de l'utilisateur. Merci d'avoir fait remarquer cela. –

0

Méfiez-vous du chemin relatif du fichier journal.
Essayez avec un chemin absolu vers un dossier disposant des privilèges corrects. exemple:

<file value="C:\\logs\\App" />