.Net Core3.1 集成Log4net

1 篇文章 0 订阅

准备

第一步:nuget 引用  Microsoft.Extensions.Logging.Log4Net.AspNetCore

第二步:在项目中添加log4net.config的配置文件(配置文件在文末)

第三步:在项目中注册使用log4net

方法一:在Program.cs中注册,找到 Program.cs里的CreateHostBuilder

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)                
        .ConfigureLogging((context, loggingBuilder) =>
        {
            loggingBuilder.AddFilter("System", LogLevel.Warning);
            loggingBuilder.AddFilter("Microsoft", LogLevel.Warning);                   
            loggingBuilder.AddLog4Net();//配置文件,如果名字叫log4net.config,在根目录则可以不指定路径
        })                
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

方法二:在Startup中注册,将program中的注册换成在startup中的config注册Log4Net

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

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

注:两种方法二选一,两种方法都注册的话,日志则会重复写两条

附:log4net.config配置文件

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <!--日志路径-->
    <param name="File" value="Logs\\" />
    <!--是否是向文件中追加日志-->
    <param name= "AppendToFile" value= "true"/>
    <!--log保留天数-->
    <param name= "MaxSizeRollBackups" value= "30"/>
    <!--日志文件名是否是固定不变的-->
    <param name= "StaticLogFileName" value= "false"/>
    <!--日志文件名格式为:2008-08-31.log-->
    <param name= "DatePattern" value= "yyyy-MM-dd&quot;.read.log&quot;"/>
    <!--日志根据日期滚动-->
    <param name= "RollingStyle" value= "Date"/>
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%n==========%n【日志级别】:%-5level%n【记录时间】:%date %n【执行时间】:[%r]毫秒%n【信息详情】%message%n" />
    </layout>
  </appender>

  <!-- 控制台前台显示日志 -->
  <appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
    <mapping>
      <level value="ERROR" />
      <foreColor value="Red" />
    </mapping>
    <mapping>
      <level value="WARN" />
      <foreColor value="Yellow" />
    </mapping>
    <mapping>
      <level value="INFO" />
      <foreColor value="White" />
    </mapping>
    <mapping>
      <level value="DEBUG" />
      <foreColor value="Green" />
    </mapping>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%d{ABSOLUTE} [%thread] %-5p %c{1}:%L - %m%n" />
    </layout>   
  </appender>

  <root>
    <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低)--> 
    <level value="all" />
    <appender-ref ref="ManagedColoredConsoleAppender"/>
    <appender-ref ref="RollingLogFileAppender"/>
  </root>
</log4net>

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

胡老汉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值