C#中Log4的使用教程[完全图解]

没有日志的系统是不完整的系统,下面小赵四步(三分钟)教会你使用Log4;我去,感觉上面有满满的教科书式的感觉。文章只是个人笔记,大佬请放过

第一步

1.使用很简单,相对于Nlog,首先第一步在Nuget上面添加包

log4net Microsoft.Extensions.Logging.Log4Net.AspNetCore


C#中Log4的使用教程[完全图解]_配置文件

第二步

1.添加​​log4net​​.config配置文件 代码我贴在下面

<?xml version="1.0" encoding="utf-8"?><log4net><!-- 将日志以回滚文件的形式写到文件中 --><!-- 按日期切分日志文件,并将日期作为日志文件的名字 --><!--Error--><appender name="ErrorLog" type="log4net.Appender.RollingFileAppender"><!--不加utf-8编码格式,中文字符将显示成乱码--> <param name="Encoding" value="utf-8" />    <file value="Log/"/> <appendToFile value="true" /> <rollingStyle value="Date" /><!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置--> <datePattern value=""GlobalExceptionLogs_"yyyyMMdd".log"" /><!--日志文件名是否为静态--> <StaticLogFileName value="false"/><!--多线程时采用最小锁定--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /><!--布局(向用户显示最后经过格式化的输出信息)--> <layout type="log4net.Layout.PatternLayout">   <conversionPattern value="%date| %-5level %newline%message%newline--------------------------------%newline" /></layout> <filter type="log4net.Filter.LevelRangeFilter">   <levelMin value="ERROR" />   <levelMax value="FATAL" /></filter></appender><!--Error-->



```

第三步

在Program中注册---------这是第一种注册方式 (在这里我踩了一个坑,一定要通过Path.Combine()的这种方式注入,我刚开始使用的是第一种,结果两个小时原地踏步走,我还以为是log4有问题,我在mvc项目中,做法完全一样,但是到NET5中就出现了这个问题,在看老张的哲学文章的时候发现了这个坑,我试了一下,完全ok,我就想上面的那个他也不报错,但就是没有日志)

  .ConfigureLogging(loggingBuilder =>
{//这种注册方式有问题,采用下面的方方式 //loggingBuilder.AddLog4Net("log4net.config");//一定要注意文件的路径
loggingBuilder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "log4net.config"));
})

C#中Log4的使用教程[完全图解]_日志文件_02

第二种方法是在中间件里面注入-大同小异:

C#中Log4的使用教程[完全图解]_xml_03

第四步

1.使用起来就特别的简单,在控制器里面先构造,在使用C#中Log4的使用教程[完全图解]_配置文件_04执行调试,就在项目文件夹下面看到生成的日志了

C#中Log4的使用教程[完全图解]_xml_05C#中Log4的使用教程[完全图解]_微信_06

项目地址放在​​https://github.com/PrideJoy/NetTemple​