.Net Core3.1 集成Log4net

準備

第一步: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>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章