2011-08-01 153 views
2

我试图在IIS 7.5/Server 2008 R2上使用log4net和RollingFileAppender。但是,从我的旧的IIS 6/Server 2003框配置似乎不再工作,我根本没有看到任何日志文件被创建,这里是我已经设置:log4net RollingFileAppender和IIS 7.5

在Web.config(里面<configSections>

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

在同一个文件(里面<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> 

的最后内部Global.asax我:

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

这在Server 2003上工作,我可以做正常的程序获取对记录器的引用并调用各种方法(调试,错误等)。使用IIS 7.5/Server 2008,所有代码都可以正常执行(即所有页面仍然正常),但日志输出目录中没有日志。

任何人之前看到过/有解决方法?

谢谢!

回答

7

这很可能是权限问题其中正在写入日志文件的进程下运行的用户(ASPNET)对您尝试登录的目录没有写入权限。您应该确保该用户有写权限到您的配置文件夹。

+2

我可以发誓,我检查了 - 但我复查,并为您指出我需要修改/写权限添加到IIS用户帐户(即IIS_IUSRS,不ASPNET)。似乎现在正在工作......谢谢! – debracey

+0

是的,我并不完全确定用户。感谢您指出了这一点。 –

0

请注意日志文件的相对路径。
使用绝对路径尝试使用具有正确权限的文件夹。 例如:

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