前言
最近正在学习net6,正好学到日志组件这一块,写一个笔记吧。
ASPNETCore6 写日志方式(log4net,log4net+sql server,Nlog)
参考使用软件:Visual Studio 2022,Sql Server2019
一、log4net
log4net是Apache软件基金会Apache日志记录服务项目的一部分。日志记录服务项目旨在为应用程序调试和审核提供跨语言日志记录服务。
1.引入程序包log4net
在里面搜索:log4net和Microsoft.Extensions.Logging.Log4Net.AspNetCore
把这两个下载安装
2.配置文件Log4net.config
- 先新建一个文件
搜索配置文件,找到后缀为config的文件类型,更改文件名。
- 文件内容
可从官网找到配置内容
https://logging.apache.org/log4net/release/manual/configuration.html
下附配置代码:
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<!-- 将日志以回滚文件的形式写到文件中 -->
<!-- 按日期切分日志文件,并将日期作为日志文件的名字 -->
<appender name="RollingFileAppenderNameByDate" type="log4net.Appender.RollingFileAppender">
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="Logs" />
<!-- 将日志信息追加到已有的日志文件中-->
<appendToFile value="true" />
<!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!-- 指定按日期切分日志文件 -->
<rollingStyle value="Date" />
<!-- 日志文件的命名规则 -->
<datePattern value=""TestLogs_"yyyyMMdd".log""/>
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!-- 日志显示模板 -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="【异常时间】:%date %newline%message%newline--------------------------------------------------------------------%newline" />
</layout>
</appender>
<root>
<!-- 控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
<!-- 比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录 -->
<!-- 如果没有定义LEVEL的值,则缺省为DEBUG -->
<level value="ALL" />
<!-- 按日期切分日志文件,并将日期作为日志文件的名字 -->
<appender-ref ref="RollingFileAppenderNameByDate" />
</root>
</log4net>
其他操作
- 在program.cs文件中添加语句
//需要配置文件
builder.Logging.AddLog4Net("Log4net.config");
- 在controllers.cs中:
private readonly ILogger<firstController> _logger;
private readonly ILoggerFactory _loggerFactory;
public firstController(ILogger<firstController>logger