C# Log4net一些配置(DEBUG/INFO/ERROR等级过滤)

前言

为什么要打日志

因为我们需要知道代码内部的运行状态,快速定位运行情况。为什么需要规范日志?
希望在规范化后,提高日志的可读性,方便终端查询,及后续用日志分析工具才会变得更加方便。

安装log4net

** NuGet程序包下载;网络资源下载 **
** 引用添加 **

配置

新增行并告诉工程在使用log4net时,需要在哪一配置文件下寻找

 在Properties下的AssemblyInfo.cs 中填写:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

新增log4net.config相关配置文件

新建log4net.config文件,并将属性"复制到输出目录"修改为"如果较新则复制"

在这里插入图片描述
在这里插入图片描述

相关配置描述:

日志等级以及日志级别遮蔽
	控制级别,由【低】到【高】:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF,ALL最低。

	一般地,所有的需要读配置的文件都要描述在<configuration> 标签内,
	直接把原有的App.config中的拷贝过来就行了。要什么样的配置直接书写就可以。
需求配置文件描述
1.我们平时最常用的日志打印有三种,分别是 : DEBUG级、INFO级、ERROR级;其中最主要的是ERROR级;
2.**目前我需要对当日所跑的程序进行LOG日志记录**,记录在一个总的文件加内,并分别使用三个文件夹用以区分。
		使用 “等级过滤” --- filiter标签;ALL写在<ROOT>中,表示三种等级都能接收向上到(因为是最下级,所以向下检测不到),
		 在<appender>最后面加Fileter过滤,通过Filter过滤,只记录等级范围为INFO到ERROR;
3.LOG日志文件使用*.htm描述,三种常用等级用不同颜色来区分: R : ERROR、G : DEBUG、B : INFO
4.因为我需求是需要为每一个业务类产生的需求日志都需要记录在案,
有可能是DEBUG的,有可能是INFO的,也有可能是ERROR的 --- : 不使用<logger>标签

配置文件实现

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

  <log4net>
    <!--错误日志类-->
    <!--信息日志类-->
    <!--Debug日志类-->
    <root>
        <level value="ALL" />
        <appender-ref ref="InfoAppender" />
        <appender-ref ref="ErrorAppender"/>
        <appender-ref ref="DebugAppender"/>
    </root>
  
    <!--错误日志附加介质-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质-->
      <param name="File" value="Log\\LogError\\" />
      <!--日志输出到exe程序这个相对目录下-->
      <param name="AppendToFile" value="true" />
      <!--输出的日志不会覆盖以前的信息-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--备份文件的个数-->
      <param name="MaxFileSize" value="10240" />
      <!--当个日志文件的最大大小-->
      <param name="StaticLogFileName" value="false" />
      <!--是否使用静态文件名-->
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <!--日志文件名-->
      <param name="RollingStyle" value="Date" />     
      <!-- 等级过滤 只需要ERROR等级的LOG -->
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR"/>
        <levelMax value="ERROR"/>
      </filter> 
      <!--文件创建的方式,这里是以Date方式创建-->
      <!--错误日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>
    
    <!--信息日志附加介质-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <param name="RollingStyle" value="Date" />
      <!-- 等级过滤 -->
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO"/>
        <levelMax value="INFO"/>
      </filter>
      <!--信息日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>

    <!--调试日志附加介质-->
    <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogDebug\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <param name="RollingStyle" value="Date" />
      <!-- 等级过滤 -->
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG"/>
        <levelMax value="DEBUG"/>
      </filter>
      <!--信息日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=green&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>
  </log4net>
</configuration>

生成文件目录

在这里插入图片描述

生成的三种不同HTML样式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中使用 Log4Net 需要进行以下配置: 1. 下载 Log4Net 可以通过 NuGet 包管理器下载 Log4Net。在 Visual Studio 中,打开“工具”菜单下的“NuGet 包管理器”,搜索“Log4Net”,并安装最新版本。 2. 配置 Log4Net 在你的项目中添加一个名为“log4net.config”的文件。在该文件中,定义 Log4Net 配置。以下是一个简单的配置示例: ```xml <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="ConsoleAppender" /> </root> </log4net> ``` 3. 在代码中使用 Log4Net 在代码中使用 Log4Net 需要进行以下步骤: ```csharp using log4net; class Program { private static readonly ILog log = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { log.Debug("Debug message"); log.Info("Info message"); log.Warn("Warn message"); log.Error("Error message"); log.Fatal("Fatal message"); } } ``` 在上面的示例中,我们首先导入 Log4Net 命名空间。然后,我们定义了一个名为“log”的静态只读字段,该字段返回一个 ILog 实例。在 Main 方法中,我们使用 ILog 实例记录日志消息。 4. 运行代码 运行代码后,你应该会在控制台中看到日志消息的输出。 这是一个简单的 Log4Net 配置和使用示例。你可以通过更改配置来满足你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值