Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
public static IHostBuilder ConfigureSerilog(this IHostBuilder builder)
{
builder
.ConfigureLogging((context, logging) => { logging.ClearProviders(); })
.UseSerilog((hostingContext, loggerConfiguration) =>
{
var config = hostingContext.Configuration;
var connectionString = config.GetConnectionString("AutoLot").ToString();
var tableName = config["Logging:MSSqlServer:tableName"].ToString();
var schema = config["Logging:MSSqlServer:schema"].ToString();
string restrictedToMinimumLevel =
config["Logging:MSSqlServer:restrictedToMinimumLevel"].ToString();
if (!Enum.TryParse<LogEventLevel>(restrictedToMinimumLevel, out var logLevel))
{
logLevel = LogEventLevel.Debug;
}
LogEventLevel level = (LogEventLevel)Enum.Parse(typeof(LogEventLevel),
restrictedToMinimumLevel);
var sqlOptions = new MSSqlServerSinkOptions
{
AutoCreateSqlTable = false,
SchemaName = schema,
TableName = tableName,
};
if (hostingContext.HostingEnvironment.IsDevelopment())
{
sqlOptions.BatchPeriod = new TimeSpan(0, 0, 0, 1);
sqlOptions.BatchPostingLimit = 1;
}
loggerConfiguration
.Enrich.FromLogContext()
.Enrich.WithMachineName()
.WriteTo.File(
path: "ErrorLog.txt",
rollingInterval: RollingInterval.Day,
restrictedToMinimumLevel: logLevel,
outputTemplate: OutputTemplate)
.WriteTo.Console(restrictedToMinimumLevel: logLevel)
.WriteTo.MSSqlServer(
connectionString: connectionString,
sqlOptions,
restrictedToMinimumLevel: level,
columnOptions: ColumnOptions);
});
return builder;
}
Теперь, когда все готово, пора заменить стандартное средство ведения журнала на Serilog.
Обновление настроек приложения
Раздел
Logging
appsettings.json
appsettings.development.json
appsettings.production
AutoLot.Api
AutoLot.Dal
Откройте файлы
appsettings.json
ApplicationName
// appsettings.json
{
"Logging": {
<b> "MSSqlServer": {</b>
<b> "schema": "Logging",</b>
<b> "tableName": "SeriLogs",</b>
<b> "restrictedToMinimumLevel": "Warning"</b>
<b> }</b>
},
<b> "ApplicationName": "AutoLot.Api",</b>
"AllowedHosts": "*"
}
// appsettings.development.json
{
"Logging": {
<b> "MSSqlServer": {</b>
<b> "schema": "Logging",</b>
<b> "tableName": "SeriLogs",</b>
<b> "restrictedToMinimumLevel": "Warning"</b>
<b> }</b>
},
"RebuildDataBase": false,
<b> "ApplicationName": "AutoLot.Api - Dev",</b>
"ConnectionStrings": {
"AutoLot": "Server=.,5433;Database=AutoLot;User ID=sa;Password=P@ssw0rd;"
}
}
// appsettings.production.json
{
"Logging": {
<b> "MSSqlServer": {</b>