A not pre release package for extending Microsoft.Extensions.Logging with the latest Serilog Console and File Sinks now a prerelease version
dotnet add package igloo15.Serilog.Microsoft.Logging.File
dotnet add package igloo15.Serilog.Microsoft.Logging.Console
LoggerFactory factory = new LoggerFactory();
var config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var section = config.GetSection("Logging:File");
var consoleSection = config.GetSection("Logging:SerilogConsole");
factory.AddFile(section);
factory.AddSerilogConsole(consoleSection);
LoggerFactory factory = new LoggerFactory();
var config = new FileConfiguration();
var consoleConfig = new ConsoleConfiguration();
factory.AddFile(config);
factory.AddSerilogConsole(consoleConfig);
public IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((context, logBuilder) =>
{
logBuilder.AddFile(context.Configuration.GetSection("Logging:File"));
logBuilder.AddSerilogConsole(context.Configuration.GetSection("Logging:SerilogConsole"));
})
.UseStartup<Startup>();
public IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging(logBuilder =>
{
logBuilder.AddFile(new FileConfiguration());
logBuilder.AddSerilogConsole(new ConsoleConfiguration());
})
.UseStartup<Startup>();
public IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging(logBuilder =>
{
logBuilder.AddConfiguration(config.GetSection("Logging"));
logBuilder.AddFile();
logBuilder.AddSerilogConsole();
})
.UseStartup<Startup>();
{
"Logging": {
"File": {
"LogLevel": {
"Default": "Warning"
},
"Shared": false,
"Template": "{Timestamp:o} {RequestId,13} [{Level:u3}] {Message} ({EventId:x8}){NewLine}{Exception}",
"FlushInterval": 2,
"PathFormat": "App.log",
"FileCountLimit": 31,
"FileSizeLimitMegaBytes": 10737.41824,
"FileSizeLimit": 1073741824,
"IncludeScopes": true,
"RenderJson": false,
"RollingInterval": "Hour",
"GroupLogging": true,
"AsyncBufferSize": 10000,
"DropLogsOnBufferLimit": false
}
}
}
{
"Logging": {
"SerilogConsole": {
"LogLevel": {
"Default": "Information"
},
"Theme": "SystemConsoleThemeLiterate",
"IncludeScopes": true,
"Template": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}",
"AsyncBufferSize": 10000,
"DropLogsOnBufferLimit": false
}
}
}