Читаем Язык программирования C#9 и платформа .NET5 полностью

Для записи в различные целевые объекты для ведения журналов инфраструктура Serilog использует приемники (sink). Целевыми объектами, которые будут применяться для ведения журнала в приложениях ASP.NET Core, являются текстовый файл, база данных и консоль. Приемники типа текстового файла и базы данных требуют конфигурации — выходного шаблона для текстового файла и списка полей для базы данных. Чтобы настроить выходной шаблон, создайте следующее статическое строковое поле, допускающее только чтение:

private static readonly string OutputTemplate =

   @"[{TimeStamp:yy-MM-dd HH:mm:ss} {Level}]{ApplicationName}:

{SourceContext}{NewLine} Message:{Message}{NewLine}in method

{MemberName} at {FilePath}:{LineNumber}{NewLine} {Exception}{NewLine}";

Приемник SQL Server нуждается в списке столбцов, идентифицированных с использованием типа SqlColumn. Добавьте показанный далее код для конфигурирования столбцов базы данных:

private static readonly ColumnOptions ColumnOptions = new ColumnOptions

{

  AdditionalColumns = new List

  {

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = "ApplicationName"},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = "MachineName"},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = "MemberName"},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = "FilePath"},

    new SqlColumn {DataType = SqlDbType.Int, ColumnName = "LineNumber"},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = "SourceContext"},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = "RequestPath"},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = "ActionName"},

  }

};

Замена стандартного средства ведения журнала вариантом Serilog представляет собой процесс из трех шагов. Первый шаг — очистка существующего поставщика, второй — добавление Serilog в HostBuildern третий — завершение конфигурирования Serilog. Добавьте новый метод по имени ConfigureSerilog(), который является расширяющим методом для IHostBuilder:

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(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()

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных