Serilog RollingFile Проблема, чтобы получить журналы в файле - PullRequest
0 голосов
/ 20 сентября 2019

Я использую dotnet core 2.0 для своего приложения.У меня есть serilog версии 2.8.0, Serilog.RollingFiles -> 3.3.0, Serilog.Extensions.Logging -> 3.0.1

  1. DefaultSettings.cs
 var dict = new Dictionary<string, string>
            {
                { "Logging:LogFile", "Logs/Messaging-{Date}.log" },
            };
Program.cs
 public static void Main(string[] args)
        {
            var webHost = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .ConfigureAppConfiguration((hostingContext, config) =>
                {
                    var env = hostingContext.HostingEnvironment;
                    config.Add(Infrastructure.DefaultSettings.GetSettings())
                        .AddJsonFile("appsettings.json", true, true)
                        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", true, true)
                        .AddJsonFile($"appsettings.local.json", true, true)
                        .AddEnvironmentVariables()
                        .AddCommandLine(args);
                })
                .ConfigureLogging((hostingContext, logging) =>
                {
                    logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                    logging.AddConsole();
                    logging.AddDebug();
                    var serilogger = new LoggerConfiguration()
                        .MinimumLevel.Debug() // Default level
                        .Filter.ByIncludingOnly(new Extensions.Logging.Serilog.SerilogFilter(hostingContext.Configuration.GetSection("Logging")).MatchInclude)
                        .WriteTo.RollingFile(hostingContext.Configuration["Logging:LogFile"], fileSizeLimitBytes: 1048576)
                        .CreateLogger();
                    logging.AddSerilog(serilogger);
                })
                .UseStartup<Startup>()
                .Build();
            webHost.Run();
        }
Startup.cs
 public void Configure(IApplicationBuilder app,ILoggerFactory loggerFactory, IApplicationLifetime lifetime, IServiceScopeFactory serviceScope)
        {

            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();
            var serilogger = new LoggerConfiguration()
                .MinimumLevel.Information() // Default level
                .Filter.ByIncludingOnly(new Extensions.Logging.Serilog.SerilogFilter(Configuration.GetSection("Logging")).MatchInclude)
                .WriteTo.RollingFile(Configuration["Logging:LogFile"], fileSizeLimitBytes: 10485760, retainedFileCountLimit: null)
                .CreateLogger();
            loggerFactory.AddSerilog(serilogger);

            var logger = loggerFactory.CreateLogger<Startup>();
            logger.LogInformation($"Env: {_env.EnvironmentName}");


///Other required details

}
Appsettings.json
{
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Information",
        "System": "Warning",
        "Microsoft": "Warning"
      }
    },
    "Console": {
      "LogLevel": {
        "Default": "Information",
        "System": "Warning",
        "Microsoft": "Warning"
      }
    }
  }
}

Но моя проблема в том,

Если я запускаю приложение, я могу видеть журналы в консоли, но я не получаю никаких журналовв файле.Путь к журналам: src / Webapi / Logs

Не могли бы вы помочь мне решить мою проблему?

Текущий файл вывода (Messaging-20190920.log)

2019-09-20 16:58:27.828 +08:00 [Warning] ::1:56358
2019-09-20 17:08:56.897 +08:00 [Warning] ::1:56544
2019-09-20 17:13:33.723 +08:00 [Warning] ::1:56654
2019-09-20 17:13:50.532 +08:00 [Warning] ::1:56664
2019-09-20 17:16:38.420 +08:00 [Warning] ::1:56739
2019-09-20 17:29:49.185 +08:00 [Warning] ::1:56894
2019-09-20 17:34:43.809 +08:00 [Warning] ::1:57056
2019-09-20 17:36:53.270 +08:00 [Warning] ::1:57056
...