log4net RollingFileAppender和IIS 7.5

deb*_*cey 2 log4net iis-7.5 windows-server-2008-r2 asp.net-mvc-2

我正在尝试在IIS 7.5/Server 2008 R2上使用带有RollingFileAppender的log4net.但是,我的旧IIS 6/Server 2003框中的配置似乎不再起作用,我只是看不到正在创建的任何日志文件,这是我设置的内容:

在Web.config(内部<configSections>)

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
Run Code Online (Sandbox Code Playgroud)

在同一个文件里面(里面<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>
Run Code Online (Sandbox Code Playgroud)

最后Global.asax我在里面:

protected void Application_Start()
{
    log4net.Config.XmlConfigurator.Configure();
}
Run Code Online (Sandbox Code Playgroud)

这适用于Server 2003,我可以执行正常的过程来获取对记录器的引用并调用各种方法(调试,错误等).使用IIS 7.5/Server 2008,所有代码都能正常执行(即所有页面看起来都还可以),但日志输出目录中没有日志.

之前见过这个/有过解决方法的人吗?

谢谢!

Col*_*e W 7

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

  • 我可以发誓我检查了 - 但我重新检查了它,正如你所指出的那样,我需要向IIS用户帐户(IIS_IUSRS,而不是ASPNET)添加修改/写入权限.似乎现在正在工作......谢谢! (2认同)