在NuGet包管理中,搜索 Microsoft.Extensions.Logging.Log4Net.AspNetCore
在Startup.cs类中添加如下代码
//添加Log4Net
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config");
//不带参数:表示log4net.config的配置文件就在应用程序根目录下,也可以指定配置文件的路径
//需要添加nuget包:Microsoft.Extensions.Logging.Log4Net.AspNetCore
//builder.AddLog4Net(path);// 配置日志【https://cytobox.blog.csdn.net/article/details/116063617?fromshare=blogdetail&sharetype=blogdetail&sharerId=116063617&sharerefer=PC&sharesource=Elegant_Kevin&sharefrom=from_link】
services.AddLogging(loggingBuilder =>
{loggingBuilder.AddFilter("System", LogLevel.Warning);loggingBuilder.AddFilter("Microsoft", LogLevel.Warning); //过滤掉系统默认的一些日志loggingBuilder.AddLog4Net(path); // 注入 log4net 配置
});
log4net.config文件配置如下,另外需要设置此文件复制到输出目录。
<?xml version="1.0" encoding="utf-8"?>
<log4net><!-- Define some output appenders --><appender name="RollingAppender" type="log4net.Appender.RollingFileAppender"><file value="log4\log.log" /><!--追加日志内容--><appendToFile value="true" /><!--防止多线程时不能写Log,官方说线程非安全--><lockingModel type="log4net.Appender.FileAppender+MinimalLock" /><!--可以为:Once|Size|Date|Composite--><!--Composite为Size和Date的组合--><rollingStyle value="Composite" /><!--当备份文件时,为文件名加的后缀--><datePattern value="yyyyMMdd.TXT" /><!--日志最大个数,都是最新的--><!--rollingStyle节点为Size时,只能有value个日志--><!--rollingStyle节点为Composite时,每天有value个日志--><maxSizeRollBackups value="20" /><!--可用的单位:KB|MB|GB--><maximumFileSize value="3MB" /><!--置为true,当前最新日志文件名永远为file节中的名字--><staticLogFileName value="true" /><!--输出级别在INFO和ERROR之间的日志--><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="ALL" /><param name="LevelMax" value="FATAL" /></filter><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/></layout></appender><root><!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--><!--OFF:0--><!--FATAL:FATAL--><!--ERROR: ERROR,FATAL--><!--WARN: WARN,ERROR,FATAL--><!--INFO: INFO,WARN,ERROR,FATAL--><!--DEBUG: INFO,WARN,ERROR,FATAL--><!--ALL: DEBUG,INFO,WARN,ERROR,FATAL--><priority value="ALL"/><level value="INFO"/><appender-ref ref="RollingAppender" /></root>
</log4net>
Controller控制器中的配置如下:
private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger)
{_logger = logger;
}