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 查看日志文件

在这里插入图片描述

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在C#使用log4net,你需要按照以下步骤进行设置: 第一步,添加log4net包: 在你的项目中,右击项目名称,选择"管理NuGet程序包"。在搜索框中输入"log4net",然后点击"安装"按钮,以添加log4net包到你的项目中。 第二步,创建log4net配置文件: 在你的项目中,创建一个名为"log4net.config"的XML文件。在文件中,你可以定义log4net的配置和日志输出方式。以下是一个基本的配置示例: ```xml <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="ConsoleAppender" /> </root> </log4net> ``` 这个示例配置了一个控制台输出的日志记录器。你可以根据自己的需求进行配置。 第三步,初始化log4net: 在你的代码中,添加以下代码来初始化log4net,通常放在程序的入口处(如Main()方法): ```csharp using log4net; using log4net.Config; namespace YourNamespace { class Program { private static readonly ILog log = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { XmlConfigurator.Configure(new FileInfo("log4net.config")); // 此处开始你的代码逻辑 } } } ``` 这段代码会读取并应用之前创建的"log4net.config"文件的配置。 第四步,使用log4net进行日志记录: 现在你可以在你的代码中使用log4net来记录日志了。使用log4net的最基本方式是通过调用ILog接口的方法。以下是一个示例: ```csharp log.Debug("Debug message"); log.Info("Info message"); log.Warn("Warning message"); log.Error("Error message"); log.Fatal("Fatal message"); ``` 这些方法分别表示不同的日志级别,你可以根据需要选择适当的级别。 以上就是在C#使用log4net的基本步骤。你可以根据自己的需求和具体情况进行更高级的配置和使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值