首页 > 编程语言 >Asp.Net 使用Log4Net (基础版)

Asp.Net 使用Log4Net (基础版)

时间:2023-07-25 21:24:32浏览次数:60  
标签:Log4Net Web Asp log Default message Net 日志

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事件中记录了日志,实际上,你可以在应用程序的其他地方记录日志,以便在必要时捕获并诊断问题。

标签:Log4Net,Web,Asp,log,Default,message,Net,日志
From: https://www.cnblogs.com/chenhanhans/p/17581047.html

相关文章

  • Asp.Net 6中使用Log4Net
    Asp.Net6中使用Log4Net1.先新建一个ASP.NETCore空项目2.通过Nuget包管理器安装下面两个包log4netMicrosoft.Extensions.Logging.Log4Net.AspNetCore3.在项目根目录下新建log4net的配置文件log4net.config,并将其设置为始终复制。<?xmlversion="1.0"encoding="utf-......
  • Asp.Net MVC 使用Log4Net
    Asp.NetMVC使用Log4Net在ASP.NETMVC中使用Log4net需要进行一些配置和代码集成。下面是在ASP.NETMVC中使用Log4net的步骤:1.安装Log4netNuGet包打开NuGet包管理器控制台,并运行以下命令来安装Log4net:Install-Packagelog4net2.添加Log4net配置文件在你......
  • Asp.Net 使用Log4Net (SQL Server)
    Asp.Net使用Log4Net(SQLServer)1.创建数据库表首先,在你的SQLServer数据库中创建一个用于存储日志的表。以下是一个简单的表结构示例:CREATETABLE[dbo].[Logs]([Id][INT]IDENTITY(1,1)PRIMARYKEY,[Date][DATETIME]NOTNULL,[Thread][VARCHAR](255)......
  • AI面试官:Asp.Net 中使用Log4Net (三)
    AI面试官:Asp.Net中使用Log4Net(三)当面试涉及到使用log4net日志记录框架的相关问题时,通常会聚焦在如何在.NET或.NETCore应用程序中集成和使用log4net。以下是一些关于log4net的面试题目,以及相应的解答、案例和代码:目录AI面试官:Asp.Net中使用Log4Net(三)11.如何在log4net中......
  • AI面试官:Asp.Net 中使用Log4Net (二)
    AI面试官:Asp.Net中使用Log4Net(二)当面试涉及到使用log4net日志记录框架的相关问题时,通常会聚焦在如何在.NET或.NETCore应用程序中集成和使用log4net。以下是一些关于log4net的面试题目,以及相应的解答、案例和代码:目录AI面试官:Asp.Net中使用Log4Net(二)6.如何配置log4net,......
  • AI面试官:Asp.Net 中使用Log4Net (一)
    AI面试官:Asp.Net中使用Log4Net(一)1.先新建一个ASP.NETCore空项目目录AI面试官:Asp.Net中使用Log4Net(一)1.先新建一个ASP.NETCore空项目1.什么是log4net?它的作用是什么?2.log4net日志级别有哪些?如何设置日志级别?3.如何在.NETCore应用程序中使用log4net记录日志?4.log......
  • 我喜欢的.NET8 Preview 1功能
    .NET8的第一个预预览版发布了,又开启了一波新技术的学习和研究。简单过了一下.NET8Preview1,中间有两个功能是我的痛点,先睹为快。在项目中,数据从前端UI到后端(后端也分为好几层),再到数据库端,每个端或层的命名规则不尽相同,所以在端之间的数据项命名转换就个痛点,C#中,帕斯卡命......
  • 我喜欢的.NET8 Preview 1功能
    .NET8的第一个预预览版发布了,又开启了一波新技术的学习和研究。简单过了一下.NET8Preview1,中间有两个功能是我的痛点,先睹为快。在项目中,数据从前端UI到后端(后端也分为好几层),再到数据库端,每个端或层的命名规则不尽相同,所以在端之间的数据项命名转换就个痛点,C#中,帕斯卡命......
  • >.NET Core|--Quartz.Net|--控制台应用程序
    前言#VisualStudio版本MicrosoftVisualStudioProfessional2022(64位)#Quartz.Net版本Quartz.Net3.6.3#C#语言版本(别小看这个,否则我下面的代码在你那里很可能跑不起来)10.0安装Quartz.Net我是直接通过Nuget包管理器安装的其它安装方式,也可以使用命......
  • quartz.net 配置UseClustering
    Quartz.NET配置UseClustering概述在开始之前,我们需要明确一些概念。Quartz.NET是一个强大且灵活的开源任务调度库,它可以帮助我们在.NET应用程序中实现各种定时任务。而UseClustering则是Quartz.NET提供的一项功能,用于在多个节点之间分配和处理任务。本文将教你如何通过......