无法写入log4net中的日志文件

时间:2012-08-07 06:28:58

标签: c# log4net

您好我在我的Windows应用程序中使用log4net以下是我的app.confige文件的内容。我的app.confige文件中有两个标签,我需要它们在我的应用程序中工作。但问题是,如果我在这种情况下包含两个标记,我的日志不会在application.log文件中创建,而如果我只注释运行时和程序集标记,那么日志会在application.log文件中创建,但是当我注释掉时运行时和程序集标签我无法为应用程序实现其他功能。

请帮助我解决问题。

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin"/>
    </assemblyBinding>
  </runtime>
  <assemblies>
    <add assembly="ImageGear19.Core"/>
  </assemblies>
  <!--The settings below are required for Logging-->
  <log4net>
    <appender name="Application" type="log4net.Appender.RollingFileAppender">
      <file value="Application.log"/>
      <appendToFile value="true"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="2 MB"/>
      <rollingStyle value="Size"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date[%thread](%-5level): %message%newline"/>
      </layout>
    </appender>
    <logger name="Application">
      <level value="All"/>
      <appender-ref ref="Application"/>
    </logger>
  </log4net>

2 个答案:

答案 0 :(得分:1)

调试log4net的最佳方法是启用其内部错误记录。这会记录它所做的一切,并帮助您追溯问题所在。

以下是关于如何在log4net中启用内部日志记录的类似thread 和说明

将此添加到您的应用设置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
</configuration>

并在web.config

的底部添加
<configuration>
    ...
    <system.diagnostics>
        <trace autoflush="true">
            <listeners>
                <add 
                    name="textWriterTraceListener" 
                    type="System.Diagnostics.TextWriterTraceListener" 
                    initializeData="C:\temp\log4net.txt" />
            </listeners>
        </trace>
    </system.diagnostics>
    ...
</configuration>

答案 1 :(得分:1)

就个人而言,有一些与逻辑处理前两个标签相关的错误。建议您在初始化log4net的位置进行调试。