使用.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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章