如何在 ASP.NET Core 3.1 应用程序中使用 Log4Net

介绍

 
日志记录是应用程序的核心。它对于调试和故障排除以及应用程序的流畅性非常重要。

借助日志记录,我们可以对本地系统进行端到端的可视性,而对于基于云的系统,我们只能提供一小部分可视性。您可以将日志写入磁盘或数据库中的文件,并发送错误电子邮件。
 

为 Log4Net 安装 NuGet 包


要使用 Log4Net 日志记录,首先需要添加 Log4Net 插件。要添加插件,您可以通过两种不同的方式进行。
  1. 管理 NuGet 包。
  2. NuGet 命令。
您可以在下面找到 Log4Net 所需的 NuGet 命令。  

PM> Install-Package log4net -Version 2.0.8  

或者,您可以 Microsoft.Extensions.Logging.Log4Net.AspNetCore 

更新启动文件

 
我们需要将Log4Net中间件注册到启动配置部分,如下所示:

public void Configure(IApplicationBuilder app,  
    IHostingEnvironment env, ILoggerFactory loggerFactory)  
{  
    loggerFactory.AddLog4Net();  
}   

添加 log4net.config 文件


我们需要点击“添加新”来向您的项目添加一个名为log4net.config的文件。  

请参阅以下 log4net.config 代码日志文件。

<log4net>  
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">  
    <lockingmodel type="log4net.Appender.FileAppender+MinimalLock">  
    <file value="logs/">  
    <datepattern value="yyyy-MM-dd hh.'txt'">  
    <staticlogfilename value="false">  
    <appendtofile value="true">  
    <rollingstyle value="Composite">  
    <maxsizerollbackups value="2">  
    <maximumfilesize value="15MB">  
    <layout type="log4net.Layout.PatternLayout">  
      <conversionpattern value="%level  %message  %date">  
    </conversionpattern></layout>  
  </maximumfilesize></maxsizerollbackups></rollingstyle></appendtofile></staticlogfilename></datepattern></file></lockingmodel></appender>  
  <root>  
    <level value="ALL">  
    <appender-ref ref="RollingLogFileAppender">  
  </appender-ref></level></root>  
</log4net>   

Root 在 log4net.config 中是必需的,我们可以在其中定义日志级别和 appender-ref 来定义附加程序。例如 - FileAppender、ConsoleAppender。

<root>  
    <level value="ALL">  
    <appender-ref ref="RollingLogFileAppender">  
</appender-ref></level></root>  

布局

在布局中,我们可以定义自定义参数,如下所示。

<layout type="log4net.Layout.PatternLayout">  
      <conversionpattern value="%level  %message  %date">  
</conversionpattern></layout>   

日志级别


共有 7 个日志记录级别。

  • 关闭-不记录任何内容(无法调用)
  • 致命的
  • 错误
  • 警告
  • 信息
  • 调试
  • ALL-所有内容都会被记录(无法调用)

不同的 Appender

  • 滚动文件附加器 - 它写入输出窗口或命令窗口。
  • 文件附加器-此附加器将写入文本文件。
  • ADO.NET Appender-此附加器将写入数据库。
  • 控制台附加器 - 此附加器执行与文件附加器相同的功能,但附加了仅在启动新日志文件之前存储一定量数据的选项。

Log4Net 的日志管理器

public static class Logger  
    {  
       
     private static readonly string LOG_CONFIG_FILE = @"log4net.config";  
       
     private static readonly log4net.ILog _log = GetLogger(typeof(Logger));  
       
     public static ILog GetLogger(Type type)  
     {  
         return LogManager.GetLogger(type);  
     }  
     
     public static void Debug(object message)  
     {  
         SetLog4NetConfiguration();  
         _log.Debug(message);  
     }  
   
   private static void SetLog4NetConfiguration()  
     {  
         XmlDocument log4netConfig = new XmlDocument();  
         log4netConfig.Load(File.OpenRead(LOG_CONFIG_FILE));  
   
         var repo = LogManager.CreateRepository(  
             Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));  
   
         log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);  
     }  

加载并读取 Log4Net 配置文件


您需要将配置文件命名为程序集名称,并且需要具有您指定的扩展名。以下是示例。 

Private static void SetLog4NetConfiguration()  
        {  
            XmlDocument log4netConfig = new XmlDocument();  
            log4netConfig.Load(File.OpenRead(LOG_CONFIG_FILE));  
   
            var repo = LogManager.CreateRepository(  
                Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));  
   
            log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);  
        }   

参考开源地址:GitHub - huorswords/Microsoft.Extensions.Logging.Log4Net.AspNetCore: Allows to configure Log4net as Microsoft Extensions Logging handler on any ASP.NET Core application. Original code proposal by @anuraj --> https://dotnetthoughts.net/how-to-use-log4net-with-aspnetcore-for-logging/

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

您好,以下是 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
发出的红包

打赏作者

csdn_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值