Asp.Net 使用Log4Net (基础版)

发布时间 2023-07-25 21:17:24作者: 陈憨憨啊

Asp.Net 使用Log4Net (基础版)

1. 创建项目

创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。

2.安装Log4Net包

打开NuGet包管理器控制台,并运行以下命令来安装Log4Net:

mathematicaCopy code
Install-Package log4net

3. 添加Log4Net配置

在Web.config文件中添加Log4Net的配置。将以下内容粘贴到Web.config文件中。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!-- 配置节,用于Log4Net的配置 -->
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <!-- Log4Net配置 -->
  <log4net debug="false">
    <!-- 日志附加器:将日志记录到文件中 -->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <!-- 文件路径及名称 -->
      <param name="File" value="Log/AT.log"/>
      <!-- 日志文件的日期格式 -->
      <param name="datePattern" value="YY-MM-dd HH:mm"/>
      <!-- 是否追加到文件尾部 -->
      <param name="AppendToFile" value="true"/>
      <!-- 日志记录格式 -->
      <layout type="log4net.Layout.PatternLayout">
        <!-- 日志记录的具体格式 -->
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
      </layout>
    </appender>
    
    <!-- 另一个日志附加器:将日志记录到ASP.NET Trace中 -->
    <appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender">
      <!-- 日志记录格式 -->
      <layout type="log4net.Layout.PatternLayout">
        <!-- 日志记录的具体格式 -->
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
      </layout>
    </appender>
      
    <!-- 另一个日志附加器:将日志记录到Windows事件日志中 -->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <!-- 日志记录格式 -->
      <layout type="log4net.Layout.PatternLayout">
        <!-- 日志记录的具体格式 -->
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
      </layout>
    </appender>
   
    <!-- 另一个日志附加器:将日志记录到滚动文件中,按日期分割 -->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!-- 文件路径及名称 -->
      <file value="log\AT"/>
      <!-- 是否追加到文件尾部 -->
      <appendToFile value="true"/>
      <!-- 文件滚动的方式,按日期滚动 -->
      <rollingStyle value="Date"/>
      <!-- 滚动的日期格式 -->
      <datePattern value="_yyyyMMdd'.log'"/>
      <!-- 文件名中是否包含静态部分 -->
      <staticLogFileName value="false"/>
      <!-- 日志记录格式 -->
      <layout type="log4net.Layout.PatternLayout">
        <!-- 日志记录的具体格式 -->
        <conversionPattern value="%d [%t] %-5p %c - %m%n"/>
      </layout>
    </appender>
    
    <!-- 根日志记录器的配置 -->
    <root>
      <!-- 日志级别为INFO,记录INFO级别及以上的日志 -->
      <level value="INFO"/>
      <!-- 将日志附加到名为RollingLogFileAppender的附加器上 -->
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>

  <!-- 其他ASP.NET应用程序配置 -->
  <system.web>
    <!-- 可在此处添加其他Web相关的配置 -->
  </system.web>
</configuration>

4. 初始化Log4Net

在Global.asax文件中,我们需要初始化Log4Net。在Application_Start事件中添加以下代码:

using log4net;

public class Global : System.Web.HttpApplication
{
    protected void Application_Start(object sender, EventArgs e)
    {
        log4net.Config.XmlConfigurator.Configure(); // Initialize Log4Net
        // Other application startup code
    }
}

5. 修改web.config 文件

?xml version="1.0" encoding="utf-8"?>
 
<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
 
<configuration>
  
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net configSource="log4net.config"/>
  <system.web>
    <httpModules>
      <!--重写IHttpModule类,需要配置的信息-->
      <!--<add name="FilterModule" type="APESM_GGJ.FilterModule,APESM_GGJ" />-->
    </httpModules>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

7. 使用Log4Net记录日志

现在,我们可以在ASP.NET应用程序的任何位置使用Log4Net来记录日志。创建一个简单的Web Form页面Default.aspx,并在Page_Load事件中添加以下代码:

using log4net;

public partial class _Default : System.Web.UI.Page
{
    private static readonly ILog log = LogManager.GetLogger(typeof(_Default));

    protected void Page_Load(object sender, EventArgs e)
    {
        log.Info("This is an information message.");
        log.Warn("This is a warning message.");
        log.Error("This is an error message.");
        log.Fatal("This is a fatal error message.");
    }
}

8. 查看日志

当你访问Default.aspx页面时,Log4Net将记录日志信息到指定的文件中。在这里,日志将被记录到"Log/AT.log"文件中。

请确保在Web应用程序的根目录下创建一个名为"Log"的文件夹,用于存储日志文件。你还可以根据需要进行其他配置更改,如日志级别或日志附加器等。

请注意,为了演示方便,我们只在Default.aspx页面的Page_Load事件中记录了日志,实际上,你可以在应用程序的其他地方记录日志,以便在必要时捕获并诊断问题。