怎样在 ASP.NET Core 3.1 应用步调中使用 Log4Net

[复制链接]
发表于 2025-12-5 05:16:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

先容

     日记纪录是应用步调的核心。它对于调试和故障打扫以及应用步调的流通性非常紧张。

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

  
要使用 Log4Net 日记纪录,起首必要添加 Log4Net 插件。要添加插件,您可以通过两种差异的方式举行。   

  • 管理 NuGet 包。
  • 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/
假如您喜欢此文章,请收藏、点赞、批评,谢谢,祝您快乐每一天。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表