1. 程式人生 > >使用.NetCore自帶Logging+log4net provider記錄日誌

使用.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