This my logger config:
var loggerConfig = new LoggerConfiguration()
//.MinimumLevel
//.Information() //These are not working from appsettings.json possibly because we are using Serilog?
//.MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", LogEventLevel.Warning)
.ReadFrom.Configuration(configuration,"Logging")
.WriteTo.Console()
.WriteTo.File(
$"{configuration.GetValue<string>("logFilePath")}{DateTime.Now.Date:yyyy_MM_dd}_{assemblyName}.log");
var logger = loggerConfig.CreateLogger();
services.AddLogging(loggingBuilder =>
{
loggingBuilder.ClearProviders();
loggingBuilder.AddSerilog(logger);
});
This is the logging section of my appsettings.json
:
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft": "Information",
"Microsoft.Hosting.Lifetime": "Information",
"Microsoft.EntityFrameworkCore.Database.Command": "Warning"
}
The logging is not following the settings from levels from setting and seems like defaulting to information.
I also tried the following and it did not work
"Logging": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"System": "Information",
"Microsoft": "Information",
"Microsoft.Hosting.Lifetime": "Information",
"Microsoft.EntityFrameworkCore": "Warning"
}
}
A sample of configuration Serilog: uncomment line to have a json ouput
{
"Serilog": {
"Using": [],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"path": "C:/Users/itki4060/Desktop/DBLite/log/log.txt",
"rollingInterval": "Month",
"retainedFileCountLimit": 13
//"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
}
}
]
},
the you could use the config like this:
var builder = new ConfigurationBuilder().SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
.AddJsonFile("appsettings.json");
var config = builder.Build();
Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(config)
.CreateLogger();
Log is static:
Log.Information("i am logging");