【问题标题】:Log4Net section in Web.Config generates ErrorWeb.Config 中的 Log4Net 部分生成错误
【发布时间】:2011-04-10 13:27:22
【问题描述】:

所以我试图在我的 Web .NET 4.0 应用程序中设置 Log4Net。我已将正确的 .dll 添加到我的项目中,并将以下内容作为启动器附加到我的 Web.Config 文件中:

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<root>
  <level value="DEBUG" />
  <appender-ref ref="RollingLogFileAppender" />
</root>
</configSections>
 <log4net debug="true">
 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="C:\\TestProj\\TestLog.txt" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="10MB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
  </layout>
 </appender>

但是,如果我将“log4net”部分附加到 Web.Config,我将收到错误消息

无法在 Web 服务器上开始调试。常见帮助见帮助 配置问题.....

确保服务器正常运行。验证没有语法 web.config中的错误............

注意 我可以删除这一部分的所有内部结构,只留下声明:

<log4net></log4net>

我仍然会得到同样的错误。

谁能给我一些关于如何追踪这个错误的指示?

【问题讨论】:

    标签: c#-4.0 log4net log4net-configuration


    【解决方案1】:

    对于不确定如何开始的开发人员,可能会有所帮助

    app.config 中的配置部分

    记得告诉你的应用程序一个库正在引入一个自定义配置部分,你打算使用它,我不完全确定它是否是强制性的,但我总是将它用作根 &lt;configuration&gt; 标记中的第一部分。

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

    app.config 中的 log4net 配置

    log4net 中有多种不同的附加程序可用,但我通常使用 RollingFileAppender,所以我在本示例中使用相同的附加程序,您可以找到其余的 here

    <log4net>
        <!-- file appender -->
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
          <file value="C:/logs/my_log_file.log"/>
          <appendToFile value="true"/>
          <rollingStyle value="Date"/>
          <maxSizeRollBackups value="30"/>
          <datePattern value=".yyyy-MM-dd"/>
          <staticLogFileName value="true"/>
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
          </layout>
        </appender>
        <root>
          <level value="DEBUG"/>
          <appender-ref ref="RollingFileAppender"/>
        </root>
      </log4net>
    

    更新 AssemblyInfo.cs 文件

    每当我必须创建一个新项目时,我总是会错过这一步。所以请记住,您必须告诉您的应用程序注意 XMLConfigurator 以执行 log4net 的配置,因此 AssemblyInfo.cs 文件末尾有以下行:

    [assembly: log4net.Config.XmlConfigurator(Watch = true)]
    

    开始

    记得包含log4net.dll的引用,然后使用以下代码行在一个类中初始化记录器

    private static ILog log = LogManager.GetLogger(typeof(MyClass));
    

    最后让我们像下面一样使用它

    log.Info("Hello log4net");
    

    快乐记录:)

    【讨论】:

      【解决方案2】:

      log4net documentation 主页查看示例配置。
      您可能放错了必需的标签。

      【讨论】:

        猜你喜欢
        • 2015-01-14
        • 1970-01-01
        • 1970-01-01
        • 2021-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-25
        • 1970-01-01
        相关资源
        最近更新 更多