通过Visual Studio调试Web应用程序时,log4net在哪里写日志文件?

时间:2011-03-16 11:58:34

标签: visual-studio-2010 web-applications log4net

我正在尝试将log4net日志记录添加到我正在编写的Web应用程序中。我在网络服务方法中得到了这个:

log4net.Config.XmlConfigurator.Configure();  
log4net.ILog log = log4net.LogManager.GetLogger(typeof(Methods));

log.Info("Some information");

这是在web.config文件中:

<configSections>
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <authentication mode="Windows" />
    <identity impersonate="true"/>
</system.web>
<log4net>
    <appender name="LogFileAppender" type="log4net.Appender.RollFileAppender">
        <file value="log.txt" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="1MB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.SimpleLayout" />
    </appender>

    <root>
        <level value="ALL" />
        <appender-ref ref="LogFileAppender" />
    </root>
</log4net>    

当我通过Visual Studio 2010进行调试时,我希望日志文件出现在bin \目录中,但没有写入任何内容。该方法成功运行,没有任何异常,但我找不到日志文件。关于它应该出现在哪里的任何想法?

编辑 - 一些额外信息: 根据通知区域图标,ASP.Net Development Server正在运行:

C:\Users\jpope\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\

此目录和\ bin \ sub-directory上的权限都为SYSTEM,me和Administrators提供了完全控制权,并且没有任何其他任何访问权限。日志文件不在上面显示的目录或\ bin \ sub-directory中。

3 个答案:

答案 0 :(得分:1)

如果你愿意涉足一些低级别的东西,那么看看Process Monitor认为Web服务器进程试图写入的内容可能会很有趣。至少它比浏览log4net文档更有趣。

答案 1 :(得分:0)

也许你应该设置asp.net用户具有你的web目录的写权。

答案 2 :(得分:0)

这结果是一个配置问题。切换到FileAppender而不是RollFileAppender可以正常工作。现在我需要找出RollFileAppender配置有什么问题......

修改:这是RollingFileAppender,而不是RollFileAppender