C#使用Log4net实现日志文件打印

一、Log4net概述

log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。

二、创建测试项目

在这里插入图片描述

三、项目引用log4net

在这里插入图片描述

3.1 AssemblyInfo.cs 配置

在其中添加一行代码,指定log4net从配置文件中读取相关配置

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

在这里插入图片描述

3.2 在App.config中添加对应的节点

<!--重点configsections必须是第一个节点1og4net配置-->
<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>

在这里插入图片描述

3.3 在App.Config中添加Log4Net.dll初始化信息

在这里插入图片描述
App.config中具体内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <!--重点configsections必须是第一个节点1og4net配置-->
   <configSections>
   	<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
   </configSections>
   <startup> 
       <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
   </startup>
   <log4net>
   	<!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质-->
   	<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
   		<!--日志文件存放的地址"D:\App_Log\servicelog\"或者工程根目录"Log\\LogInfo\\"-->
   		<param name= "File" value= "Log\\LogInfo\\"/>
   		<!--输出的日志不会覆盖以前的信息-->
   		<param name= "AppendToFile" value= "true"/>
   		<!--备份文件的个数-->
   		<param name= "MaxSizeRollBackups" value= "10"/>
   		<!--是否使用静态文件名-->
   		<param name= "StaticLogFileName" value= "false"/>
   		<!--日志文件名-->
   		<param name= "DatePattern" value= "yyyy-MM-dd&quot;.read.log&quot;"/>
   		<!--文件创建的方式,这里是以Date方式创建-->
   		<param name= "RollingStyle" value= "Date"/>
   		<!--日志格式、错误日志布局-->
   		<layout type="log4net.Layout.PatternLayout">
   			<param name="ConversionPattern" value="[%date]-[%thread]-[%-p]-[%logger]-[%M] -> %message%newline" />
   			<!--conversionPattern:
           %m(message):输出的日志消息;                    %n(newline):换行;
           %L:输出语句所在的行号;                        %F:输出语句所在的文件名;
           %d(datetime):输出当前语句运行的时刻;           %p(priority): 日志的当前日志级别;
           %t(threadid):当前语句所在的线程ID ;            %c(class):当前日志对象的名称;         
           %r(runtime):输出程序从运行到执行到当前语句时消耗的毫秒数;
           %-10:表示最小长度为10,如果不够,则用空格填充;-->
   		</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" />
   		<!--信息日志布局-->
   		<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>
   	<root>
   		<!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF
         比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录
         如果没有定义LEVEL的值,则缺省为DEBUG-->
   		<level value="all" />
   		<appender-ref ref="ErrorAppender"/>
   		<appender-ref ref="InfoAppender"/>
   	</root>
   </log4net>
</configuration>

3.4 代码测试

在需要输出日志的类中定义日志对象。
在这里插入图片描述

3.5 查看日志文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值