使用.NetCore自带Logging+log4net provider记录日志

1. 引用类库

Nuget添加类库Microsoft.Extensions.Logging.Log4Net.AspNetCore

2. 添加配置文件

添加log4net.config文件

<?xml version="1.0" encoding="utf-8"?>
<log4net>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <!-- 线上禁止配置在程序目录,需修改为具体日志路径 -->
    <file value="logs/myproject.log" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
  </appender>

  <root>
    <!--  -->
    <level value="Debug" />
    <appender-ref ref="RollingFileAppender" />
  </root>
</log4net>

3. Startup.cs加配置

  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
         // 添加日志Provider
         loggerFactory.AddLog4Net();
    }

4.控制器使用

  public class MyController : ControllerBase
    {
        private readonly ILogger _logger;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="logger"></param>
        public MyController(ILogger<ChecksController> logger)
        {
            _logger = logger;
        }
        /// <summary>
        /// Get
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            _logger.Log(LogLevel.Trace, "LogLevel.Trace");
            _logger.Log(LogLevel.Debug, "LogLevel.Debug");
            _logger.Log(LogLevel.Information, "LogLevel.Information");
            _logger.Log(LogLevel.Warning, "LogLevel.Warning");
            _logger.Log(LogLevel.Error, "LogLevel.Error");
            _logger.Log(LogLevel.Critical, "LogLevel.Critical");
            
            _logger.LogTrace("LogLevel.Trace");
            _logger.LogDebug("LogLevel.Debug");
            _logger.LogInformation("LogLevel.Information");
            _logger.LogWarning("LogLevel.Warning");
            _logger.LogError("LogLevel.Error");
            _logger.LogCritical("LogLevel.Critical");
            return new string[] { "value1", "value2" };
        }
  }

Github详情地址 https://github.com/huorswords/Microsoft.Extensions.Logging.Log4Net.AspNetCore

END

猜你喜欢

转载自blog.csdn.net/qq_31176861/article/details/84618875
今日推荐