我想知道是否可以设置滚动文件的最大数量?
我想这样做,所以我不需要创建一个作业来清理旧的日志文件。上个月的日志就好了。
这是我目前的配置
private static IHostBuilder CreateHostBuilder(string[] args)
{
var logFile = Path.Combine(_logPath, $"{_appName}_.json");
var logFileErrors = Path.Combine(_logPath, $"{_appName}_errors_.json");
var logFileStartUp = Path.Combine(_logPath, $"{_appName}_startup.json");
return Host.CreateDefaultBuilder(args)
.UseSerilog((context, provider, loggerConfig) =>
loggerConfig
.ReadFrom.Configuration(context.Configuration)
.Enrich.FromLogContext()
.Enrich.WithMachineName()
.Enrich.WithProperty("Assembly", $"{_appName}")
.Enrich.WithProperty("Version", $"{_appVersion}")
.WriteTo.Console(theme: AnsiConsoleTheme.Code)
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(e =>
e.Level is LogEventLevel.Warning or LogEventLevel.Error or LogEventLevel.Fatal)
.WriteTo.File(new ElasticsearchJsonFormatter(), logFileErrors,
fileSizeLimitBytes: 10485760L, rollingInterval: RollingInterval.Month,
rollOnFileSizeLimit: true))
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(e => e.Level is LogEventLevel.Information).Filter
.ByIncludingOnly(Matching.WithProperty("RequestId"))
.WriteTo.File(new ElasticsearchJsonFormatter(), logFile, fileSizeLimitBytes: 10485760L,
rollingInterval: RollingInterval.Month, rollOnFileSizeLimit: true))
.WriteTo.Logger(lc => lc
.Filter.ByExcluding(Matching.WithProperty("RequestId"))
.WriteTo.File(new ElasticsearchJsonFormatter(), logFileStartUp)))
.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
}