.net core通过依赖注入使用log4net记录日志

进入现在的公司,每天都很忙碌,虽然说这样会让你感觉到充实,但是充实过后难免有些空虚,因为周而复始的业务逻辑不但没有让自己能力提高,而且还陷入每天修改别人bug的死循环中。今天刚好周末有点时间就研究了一下.net core中如何使用log4net记录日志,当然咱们也可以像以前.net framework那样创建一个LogHelper,但是咱们既然使用到了依赖注入,还是通过依赖注入的方式来实现吧。

第一步、通过nuget引入类库

<ItemGroup>
    <PackageReference Include="log4net" Version="2.0.12" />
    <PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="3.1.5" />
</ItemGroup>

第二步、修改.net core的默认日志记录方式

修改Program.cs

 第三步、编码记录日志

 第四步、log4net.config文件

<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <appender name="Log4Name" type="log4net.Appender.RollingFileAppender">
        <!--日志路径-->
        <param name="File" value="loglog.log" />
        <!--是否是向文件中追加日志-->
        <param name="AppendToFile" value="true" />
        <!--log保留个数-->
        <param name="MaxSizeRollBackups" value="200" />
        <!--单个日志文件大小-->
        <param name="MaximumFileSize" value="5MB" />
        <!--日志文件名是否是固定不变的-->
        <param name="StaticLogFileName" value="false" />
        <!--日志文件名格式为:2008-08-31.log-->
        <DatePattern value="yyyy-MM-dd HH'时.log'"></DatePattern>
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
        <param name="RollingStyle" value="Size" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %5level %logger.%method [%line] - MESSAGE: %message%newline %exception" />
        </layout>
    </appender>
    <root>
        <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
        <level value="ALL" />
        <appender-ref ref="Log4Name" />
    </root>
</log4net>
View Code

第五步、调整日志级别

首先咱们必须要清楚,日志的记录首先是通过.net core的日志记录器输出日志,然后再通过log4net进行文本输出,因此这里有两个地方需要控制日志级别,log4net的日志基本不用赘述,如下:

(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低)

而.net core的日志级别则需要调整appsettings.json(或appsettings.Development.json)文件中的配置:

 

 至此,就可以正常输出日志了。

原文地址:https://www.cnblogs.com/duanjt/p/13910633.html