Skip to content

Serilog flushToDiskInterval doesn't work #39

@Tabigon

Description

@Tabigon

Reproduction steps:

  1. Setup Program.cs like this:
    `public class Program
    {
    public static void Main(string[] args)
    {
    IConfigurationBuilder configBuilder = new ConfigurationBuilder();
    configBuilder.SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
    IConfiguration config = configBuilder.Build();

         Log.Logger = new LoggerConfiguration()
             .WriteTo.File("Logs/log-{Date}.txt", buffered: true, flushToDiskInterval: TimeSpan.FromSeconds(60))
         .CreateLogger();
    
         CreateWebHostBuilder(args).Build().Run();
     }
    
     public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
     WebHost.CreateDefaultBuilder(args)
         .UseSerilog() // Set serilog as the logging provider.
         .UseStartup<Startup>();
    

    }`

  2. Get logger via DI in some controller:
    `private ILogger _logger;

     public SampleDataController(ILogger<SampleDataController> logger)
     {
         _logger = logger;
     }`
    
  3. Trying to log an event:
    public IEnumerable<WeatherForecast> WeatherForecasts(int startDateIndex) { _logger.LogInformation("Test message"); return null; }

Expected result:
Logs are flushed to disk every minute.

Real result:
Logs are flushed right away as log method called

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions