zoukankan      html  css  js  c++  java
  • .Net Core3.1 集成Log4net

    1.准备

      首先nuget添加下引用  Microsoft.Extensions.Logging.Log4Net.AspNetCore

    目前的版本为v3.1.0 ,添加完成后我们开始注册。

    2.注册

      2.1在Program.cs中注册

           找到 Program.cs里的CreateHostBuilder

          

            

          添加如上代码,,AddFilter() 的意思是过滤掉指定的相关日志。

          注意:此处CreateHostBuilder在版本中不一致。 

          最后添加上配置文件就ok,附上配置文件:

          

    <?xml version="1.0" encoding="utf-8"?>
    <log4net>
      <!-- Define some output appenders -->
      <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
        <file value="logslog.txt" />
        <!--追加日志内容-->
        <appendToFile value="true" />
    
        <!--防止多线程时不能Log,官方说线程非安全-->
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    
        <!--可以为:Once|Size|Data|Compsite-->
        <!--Compsite为Size和Data的组合-->
        <rollingStyle value="Composite" />
    
        <!--当备份文件时,为文件名加的后缀-->
        <datePattern value="yyyyMMdd'.log'" />
    
        <!--日志的最大个数,都是最新的-->
        <!--rollingStyle为Size时,只能有value个日志-->
        <!--rollingStyle为Compsite时,每天有value个日志-->
        <maxSizeRollBackups value="20" />
    
        <!--可用的单位:KB|MB|GB-->
        <maximumFileSize value="3MB" />
    
        <!--值为true时,当前最新日志文件名永远为file节点中的名字-->
        <staticLogFileName value="true" />
    
        <!--输出级别在INFO和ERROR之间的日志-->
        <filter type="log4net.Filter.LevelRangeFilter">
          <param name="LevelMin" value="ALL" />
          <param name="LevelMax" value="FATAL" />
        </filter>
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
        </layout>
      </appender>
      <root>
        <priority value="ALL" />
        <level value="ALL" />
        <appender-ref ref="rollingAppender" />
      </root>
    </log4net>
    log4net.Config

      2.2在Startup中注册

          此时已经添加了配置文件,再将program中的注册换成在startup中的config注册Log4Net

          

          

    3.使用

      以WeatherForecastController为例,首先声明一个ILogger类型对象:

    private readonly ILogger<WeatherForecastController> _logger
    

      

    使用构造函数,将log4net注入到ILogger:

    public WeatherForecastController(ILogger<WeatherForecastController> logger) 
    { 
        _logger = logger; 
    }
    

      现在WeatherForecastController是这样的

    [ApiController]
        [Route("[controller]")]
        public class WeatherForecastController : ControllerBase
        {
            private static readonly string[] Summaries = new[]
            {
                "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
            };
    
            private readonly ILogger<WeatherForecastController> _logger;
    
            public WeatherForecastController(ILogger<WeatherForecastController> logger)
            {
                _logger = logger;
            }
    
            [HttpGet]
            public IEnumerable<WeatherForecast> Get()
            {
                _logger.LogInformation("======WeatherForecastController Get()======");
                var rng = new Random();
                return Enumerable.Range(1, 5).Select(index => new WeatherForecast
                {
                    Date = DateTime.Now.AddDays(index),
                    TemperatureC = rng.Next(-20, 55),
                    Summary = Summaries[rng.Next(Summaries.Length)]
                })
                .ToArray();
            }
        }
    WeatherForecastController

    4.测试一下

      在Get方法中写入如下日志

      运行后会出现一个名为logs文件夹,写入的日志就在logs下的log.txt中。

      

      

  • 相关阅读:
    【转】CUDA5/CentOS6.4
    【转】centos 6.4 samba 安装配置
    【转】Install MATLAB 2013a on CentOS 6.4 x64 with mode silent
    【转】Getting xrdp to work on CentOS 6.4
    【VLFeat】使用matlab版本计算HOG
    Unofficial Windows Binaries for Python Extension Packages
    March 06th, 2018 Week 10th Tuesday
    March 05th, 2018 Week 10th Monday
    March 04th, 2018 Week 10th Sunday
    March 03rd, 2018 Week 9th Saturday
  • 原文地址:https://www.cnblogs.com/zousc/p/12527856.html
Copyright © 2011-2022 走看看