Web.Config中的Log4Net部分生成错误

pgh*_*ech 8 log4net c#-4.0 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>
Run Code Online (Sandbox Code Playgroud)

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

无法在Web服务器上启动调试.有关常见配置问题请参阅帮助.....

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

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

<log4net></log4net>
Run Code Online (Sandbox Code Playgroud)

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

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

Mub*_*har 15

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

app.config中的ConfigSections

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

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
Run Code Online (Sandbox Code Playgroud)

app.config中的log4net配置

log4net中有很多种不同的appender,但我通常使用RollingFileAppender,所以我在这个示例中使用相同的一个,你可以在这里找到其余的.

<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>
Run Code Online (Sandbox Code Playgroud)

更新AssemblyInfo.cs文件

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

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Run Code Online (Sandbox Code Playgroud)

入门

请记住包含log4net.dll的引用, 然后使用以下代码行来初始化类中的logger

private static ILog log = LogManager.GetLogger(typeof(MyClass));
Run Code Online (Sandbox Code Playgroud)

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

log.Info("Hello log4net");
Run Code Online (Sandbox Code Playgroud)

快乐记录:)


Jah*_*ine 1

查看log4net 文档主页上的示例配置。
您很可能丢失了所需的标签。