【问题标题】:Log4Net not workingLog4Net 不工作
【发布时间】:2010-08-19 05:58:14
【问题描述】:

我正在以管理员用户身份在 Windows XP 中使用 C# 开发 .NET Framework 3.5,使用 log4net 作为 .NET Framework 2.0 二进制参考。

我尝试过What am I missing with log4net - No log file created,但它对我不起作用。

我将以下内容添加到 AssemblyInfo.cs 中:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

并创建了一个文件“Log4Net.config”,如下所示,但是,当我运行我的控制台应用程序时,在我的项目中找不到任何日志文件。我错过了什么?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <log4net>

    <!-- 
            log4net documentation http://logging.apache.org/log4net/
            Logging levels in order of increasing priority:
                * ALL
                * DEBUG
                * INFO
                * WARN
                * ERROR
                * FATAL
                * OFF
        -->

    <appender name="DebugLog" type="log4net.Appender.FileAppender">
      <file value="MyLog_debug.log" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <maximumFileSize value="5MB" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <levelMax value="DEBUG" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date %-5level %logger - %message%newline" />
      </layout>
    </appender>

    <appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
      <file value="MyLog_info.log" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value="yyyyMMdd" />
      <maxSizeRollBackups value="7" />
      <maximumFileSize value="5MB" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="WARN" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date %-5level %logger - %message%newline" />
      </layout>
    </appender>

    <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
      <file value="MyLog_error.log" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value="yyyyMMdd" />
      <maxSizeRollBackups value="30" />
      <maximumFileSize value="5MB" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR" />
        <levelMax value="FATAL" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date %-5level %logger - %message%newline" />
      </layout>
    </appender>

    <!-- Set the default logging level and add the active appenders -->
    <root>
      <level value="ALL" />
      <appender-ref ref="DebugLog" />
      <appender-ref ref="InfoLog" />
      <appender-ref ref="ErrorLog" />
    </root>

  </log4net>
</configuration>

【问题讨论】:

    标签: log4net


    【解决方案1】:

    确保将配置文件复制到输出目录。

    如果您使用的是 Visual Studio,请转到“Log4Net.config”属性,并确保“复制到输出目录”设置为“始终复制”或“如果更新则复制”。否则,只需确保将配置文件复制到输出目录即可。

    此外,log4net.Appender.FileAppender 没有“maximumFileSize”属性,因此您需要将其从配置文件中删除。

    【讨论】:

      【解决方案2】:

      在您的myproject.csproj 中添加以下内容,其中包含内容。

          <Content Include="log4net.config">
            <CopyToOutputDirectory>Always</CopyToOutputDirectory>
          </Content>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-29
        • 1970-01-01
        相关资源
        最近更新 更多