c#-4.0 - Web.Config 中的 Log4Net 部分生成错误

标签 c#-4.0 log4net log4net-configuration

所以我尝试在我的 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,我将收到错误消息

Unable to start debugging on the web server. See help for common configuration problems.....

Make sure the server is running correctly. Verify there are no syntax errors in the web.config........

注意 我可以删除此部分的所有内部内容,只留下声明:

<log4net></log4net>

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

有人可以给我一些关于如何追踪此错误的指示吗?

最佳答案

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

app.config 中的配置部分

请记住告诉您的应用程序,一个库正在引入一个自定义配置部分,您打算使用它,我不确定它是否是强制性的,但我总是将它用作根 <configuration> 中的第一部分标签。

<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");

祝您记录愉快:)

关于c#-4.0 - Web.Config 中的 Log4Net 部分生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5612047/

相关文章:

c#-4.0 - 是否有任何 MSBuild 替代方案?

c# - Log4net、ADONetAppender 和存储过程 : Set Precision & Scale?

c# - 如何为类库包含 log4net?

c# - 使用外部配置文件时 log4net 不记录

javascript - 将值从 aspx javascript 传递到 ascx 页面

c# - 使用 monotorrent c# 创建 torrent

c# - 使用 “FilterExecutingContext” 时出错,如何使用 ActionFilterAttribute 类的 ‘OnActionExecuting’ 方法?

.net - log4net.ThreadContext 和 log4net.LogicalThreadContext 有什么区别?

.net - NUnit 测试项目的 log4net 配置部分

c# - 将日志写入文件