Lorsque vous configurez Serilog
par un fichier de configuration (avec le paquet nuget Serilog.Settings.Configuration
), il ne crée pas de fichier journal roulant lorsque la taille limite est atteinte.
Comme suggéré dans cette question y cette question J'utilise Serlog.Sinks.File
(version 4.0.0), mais le fichier roulant n'est pas créé.
Voici mon fichier de configuration serilog appsettings.json
:
{
"Serilog": {
"Using": [
"Serilog.Sinks.File",
"Serilog.Sinks.Console"
],
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "%LogPath%\\Logs\\log.txt",
"rollOnFileSizeLimit ": true,
"retainedFileCountLimit ": 20,
"rollingInterval": "Day",
"fileSizeLimitBytes": 10000
}
},
{
"Name": "Console"
}
],
"Enrich": [ "FromLogContext", "WithMachineName" ],
"Destructure": [
],
"Properties": {
}
}
}
Voici le code que j'utilise Serilog
pour lire la configuration :
//previous code ommited...
.ConfigureAppConfiguration((hostContext, configApp) =>
{
Environment.SetEnvironmentVariable("LogPath", AppDomain.CurrentDomain.BaseDirectory);
configApp.AddJsonFile("appsettings.json", optional: false);
configApp.AddEnvironmentVariables();
configApp.AddCommandLine(args);
})
.UseSerilog((hostingContext, loggerConfiguration) =>
{
loggerConfiguration
.ReadFrom.Configuration(hostingContext.Configuration);
.WriteTo.Console();
})
Lorsque la taille du fichier atteint 10KB, il cesse de croître, et aucun nouveau fichier journal n'est créé. BTW, le roulement par jour fonctionne toujours.
J'ai également vérifié en configurant Serilog
par code, et ça marche, donc je pense que ce n'est pas lié à l'évier...
Voici le code qui fonctionne
.UseSerilog((hostingContext, loggerConfiguration) =>
{
loggerConfiguration.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.File(path: Path.Combine(Environment.CurrentDirectory, "Logs", "log.txt"),
rollOnFileSizeLimit: true,
retainedFileCountLimit: 20,
rollingInterval: RollingInterval.Day,
fileSizeLimitBytes: 10000
)
.WriteTo.Console();
})
Alors comment faire pour que Serilog crée un fichier roulant lorsque la taille du fichier est atteinte par le fichier de configuration ?