注意:本文针对的是框架.net5.0版本以上的log4net使用方法,.net4.8及以下请出门右转。
.net4.8及以下和.net5.0以上使用log4net最大的区别就是.net5.0以上创建的程序不在自动生成properties下的AssemblyInfo.cs文件,也就是说log4net配置文件无法放入AssemblyInfo中进行加载,.net5.0以上需要采用静态注入的方式来加载配置文件。
1. 导入log4net
2. 创建log4net.config配置文件,添加如下xml语句,以下语句是我认为可以生成阅读性高的模板。然后,右击这个配置文件,选择属性,在“复制到输出目录”中,选择“如果较新则复制”。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--错误日志-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="log\\LogError\\" />
<!--是否支持分割文件(追加日志)-->
<appendToFile value="true" />
<!--日志文件的记录形式-->
<rollingStyle value="Composite" />
<!--防止多线程时不能写log-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!--当日志文件达到MaxFileSize大小,就自动创建备份文件。-->
<param name="MaxSizeRollBackups" value="100" />
<!--日志文件的布局格式-->
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n错误描述:%message%newline %n" />
</layout>
</appender>
<!--Info日志-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\Info\\" />
<param name="AppendToFile" value