.NET CORE 3.1 使用Log4Net日志记录

.NET CORE 3.1 使用Log4Net日志记录

VS 2019
创建.net core web api项目
在这里插入图片描述

nuget安装

1. log4net.AspNetCore
2. Microsoft.Extensions.Logging.Log4Net.AspNetCore

在这里插入图片描述
新建配置文件 log4net.config 写入下面内容
也可官网:log4net

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<log4net>
		<appender name="RollingAppender" type="log4net.Appender.RollingFileAppender">
			<!--指定日志文件保存的目录-->
			<file value="D:\log\log.txt"/>
			<!--追加日志内容-->
			<appendToFile value="true"/>
			<!--可以为:Once|Size|Date|Composite-->
			<!--Compoosite为Size和Date的组合-->
			<rollingStyle value="Composite"/>
			<!--设置为true,当前最新日志文件名永远为file字节中的名字-->
			<staticLogFileName value="false"/>
			<!--当备份文件时,备份文件的名称及后缀名-->
			<datePattern value="yyyyMMdd.TXT"/>
			<!--日志最大个数-->
			<!--rollingStyle节点为Size时,只能有value个日志-->
			<!--rollingStyle节点为Composie时,每天有value个日志-->
			<maxSizeRollBackups value="20"/>
			<!--可用的单位:KB|MB|GB-->
			<maximumFileSize value="5MB"/>
			<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 [%property{NDC}] - %message%newline"/>
			</layout>
		</appender>
		<root>
			<priority value="ALL"/>
			<level value="ALL"/>
			<appender-ref ref="RollingAppender"/>
		</root>
	</log4net>
</configuration>

修改 Program 内的 public static IHostBuilder CreateHostBuilder(string[] args) 方法

  public static IHostBuilder CreateHostBuilder(string[] args)
        {
            var hostbuilder = Host.CreateDefaultBuilder(args) //创建一个默认的主机builder
                .ConfigureLogging((context, loggingBuilder) =>
                {
                    loggingBuilder.AddFilter("System", LogLevel.Warning);
                    loggingBuilder.AddFilter("Microsoft", LogLevel.Warning);
                    loggingBuilder.AddLog4Net("log4net.config"); //注入log4net配置log4Net配置文件的读取 
               })
                .ConfigureWebHostDefaults(webBuilder =>  //配置成一个默认的Web主机
                {
                     webBuilder.UseStartup<Startup>()
                     .UseUrls("http://*:5000;https://*:5001"); //使用Startup文件来实现配置

                });
            return hostbuilder;
        }

新疆控制器 Home

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WebLog4Netcore3._1.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;
        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
            _logger.LogInformation("ValueController 控制器已构造");
        }
        public IActionResult Index()
        {
            return View();
        }
        [HttpGet]
        [Route("GetLogInfoTest")]
        public ContentResult GetLogInfoTest()
        {
            _logger.LogInformation("info日志输出");      
            _logger.LogDebug("debug日志输出");
            _logger.LogError("error日志输出");
            _logger.LogWarning("warning日志输出");
            
            return Content("测试输出");
        }
    }
}

测试输出
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,以下是 ASP.NET CORE 3.1 配置 log4net 的示例代码: 1. 在项目中添加 log4net 的 NuGet 包 2. 在项目根目录下创建 log4net.config 文件,配置 log4net 的相关信息,例如: ``` <?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> <file value="logs\log.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="RollingFile" /> </root> </log4net> ``` 3. 在 Startup.cs 文件中添加 log4net 的配置,例如: ``` using log4net; using log4net.Config; public class Startup { private static readonly ILog log = LogManager.GetLogger(typeof(Startup)); public Startup(IConfiguration configuration) { Configuration = configuration; // 配置 log4net XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config")); } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { // ... } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... // 使用 log4net 记录日志 log.Debug("Debug message"); log.Info("Info message"); log.Warn("Warn message"); log.Error("Error message"); log.Fatal("Fatal message"); } } ``` 以上就是 ASP.NET CORE 3.1 配置 log4net 的示例代码,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值