• .Net Core 3.1之使用扩展log4net


    Step1:引入包Microsoft.Extensions.Logging.Log4.AspNetCore

    Step2:写log4net.config文件

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <log4net>
     3 <!-- Define some output appenders -->
     4 <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
     5 <file value="loglog.txt" />
     6 <!--追加日志内容-->
     7 <appendToFile value="true" />
     8 
     9 <!--防止多线程时不能写Log,官方说线程非安全-->
    10 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    11 
    12 <!--可以为:Once|Size|Date|Composite-->
    13 <!--Composite为Size和Date的组合-->
    14 <rollingStyle value="Composite" />
    15 
    16 <!--当备份文件时,为文件名加的后缀-->
    17 <datePattern value="yyyyMMdd.TXT" />
    18 
    19 <!--日志最大个数,都是最新的-->
    20 <!--rollingStyle节点为Size时,只能有value个日志-->
    21 <!--rollingStyle节点为Composite时,每天有value个日志-->
    22 <maxSizeRollBackups value="20" />
    23 
    24 <!--可用的单位:KB|MB|GB-->
    25 <maximumFileSize value="3MB" />
    26 
    27 <!--置为true,当前最新日志文件名永远为file节中的名字-->
    28 <staticLogFileName value="true" />
    29 
    30 <!--输出级别在INFO和ERROR之间的日志-->
    31 <filter type="log4net.Filter.LevelRangeFilter">
    32 <param name="LevelMin" value="ALL" />
    33 <param name="LevelMax" value="FATAL" />
    34 </filter>
    35 <layout type="log4net.Layout.PatternLayout">
    36 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
    37 </layout>
    38 </appender>
    39 <root>
    40 <priority value="ALL"/>
    41 <level value="ALL"/>
    42 <appender-ref ref="rollingAppender" />
    43 </root>
    44 </log4net>
    View Code

    Step3:在Program.cs里添加配置

    1 public static IHostBuilder CreateHostBuilder(string[] args) =>
    2   Host.CreateDefaultBuilder(args)
    3   .ConfigureLogging((context,logginBuilder)=> {
    4     logginBuilder.AddLog4Net();
    5   })
    6   .ConfigureWebHostDefaults(webBuilder =>
    7   {
    8     webBuilder.UseStartup<Startup>();
    9 });

    Step:4在controller里进行使用

      

     1 public class WeatherForecastController : ControllerBase
     2 {
     3   private static readonly string[] Summaries = new[]
     4   {
     5     "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
     6   };
     7 
     8   private readonly ILogger<WeatherForecastController> _logger;
     9 
    10   public WeatherForecastController(ILogger<WeatherForecastController> logger)
    11   {
    12     _logger = logger;
    13   }
    14 
    15   [HttpGet]
    16   public IEnumerable<WeatherForecast> Get()
    17   {
    18     this._logger.LogInformation("information test");
    19     var rng = new Random();
    20     return Enumerable.Range(1, 5).Select(index => new WeatherForecast
    21     {
    22       Date = DateTime.Now.AddDays(index),
    23       TemperatureC = rng.Next(-20, 55),
    24       Summary = Summaries[rng.Next(Summaries.Length)]
    25     })
    26     .ToArray();
    27   }
    28 }
  • 相关阅读:
    接口 抽象类 小记
    java 强制转换
    java 多态
    this super 解释
    Java多态性理解
    final与static
    java动态联编
    什么是继承
    JAVA的覆盖、继承和多态的详细解说.this和super的用法
    java继承覆盖总结
  • 原文地址:https://www.cnblogs.com/xingzhu-nan/p/12528171.html
Copyright © 2020-2023  润新知