【问题标题】:Log4Net with ASP.NET Core 2.2 to write to a File使用 ASP.NET Core 2.2 写入文件的 Log4Net
【发布时间】:2019-09-19 04:40:00
【问题描述】:

在我的 ASP.NET Core 2.2 应用程序中,我安装了 Microsoft.Extensions.Logging.Log4Net.AspNetCore

在startup.cs中

public class Startup
    {
        private readonly ILogger _logger;
        public Startup(IConfiguration configuration, ILogger<Startup> logger)
        {
            Configuration = configuration;
            _logger = logger;
        }
 public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
    ....
    .....
      _logger.LogInformation("Added TodoRepository to services");
    .....
    .....
        }

      public void Configure(IApplicationBuilder app, IHostingEnvironment env,
                UserManager<User> userManager, RoleManager<Role> roleManager,
                ILoggerFactory loggerFactory)
    {
     ....
     loggerFactory.AddLog4Net();
     ....

    }

在我的 Home 控制器中

 public IActionResult Index()
        {
            _logger.LogInformation("Home Index page");
            _logger.LogWarning("Home Index page");
            _logger.LogError("Home Index page");
            _logger.LogDebug("Home Index page");
            return View();
        }

我看到日志显示在 Visual Studio 输出窗口中,但这并没有写入任何文件。

log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <file value="C:\Temp\WebAppFolder" />
    <datePattern value="yyyy-MM-dd.'txt'"/>
    <staticLogFileName value="false"/>
    <appendToFile value="true"/>
    <rollingStyle value="Date"/>
    <maxSizeRollBackups value="100"/>
    <maximumFileSize value="15MB"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level App  %newline %message %newline %newline"/>
    </layout>
  </appender>
  <root>
    <level value="ALL"/>
    <appender-ref ref="RollingLogFileAppender"/>
  </root>
</log4net>

【问题讨论】:

  • 您的 datePattern 值似乎格式错误。那里不应该有.txt,不是吗?另外,我认为您需要使用要登录的文本文件的完整路径填写 file 值。
  • 就是这样。
  • 我刚刚添加了这个作为答案,介意接受吗?

标签: c# asp.net-mvc log4net asp.net-core-2.2


【解决方案1】:

您的 datePattern 值似乎格式不正确。那里不应该有.txt。此外,您需要使用要登录的文本文件的完整路径填写 file 值。

【讨论】:

  • 必须是完整路径吗?我无法让它登录 Azure 应用服务中托管的 .net core 3 应用中的文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-08
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
相关资源
最近更新 更多