Жанры книг
Мы в соц.сетях
ParaKnig📚 » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<< На главную

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 590 591 592 593 594 595 596 597 598 ... 642
Перейти на страницу:

  _logger.LogDebug(message);

  foreach (var item in list)

  {

    item.Dispose();

  }

}

public void LogAppTrace(string message,

  [CallerMemberName] string memberName = &quot;&quot;,

  [CallerFilePath] string sourceFilePath = &quot;&quot;,

  [CallerLineNumber] int sourceLineNumber = 0)

{

  var list = PushProperties(memberName, sourceFilePath, sourceLineNumber);

  _logger.LogTrace(message);

  foreach (var item in list)

  {

    item.Dispose();

  }

}

public void LogAppInformation(string message,

  [CallerMemberName] string memberName = &quot;&quot;,

  [CallerFilePath] string sourceFilePath = &quot;&quot;,

  [CallerLineNumber] int sourceLineNumber = 0)

{

  var list = PushProperties(memberName, sourceFilePath, sourceLineNumber);

  _logger.LogInformation(message);

  foreach (var item in list)

  {

    item.Dispose();

  }

}

public void LogAppWarning(string message,

  [CallerMemberName] string memberName = &quot;&quot;,

  [CallerFilePath] string sourceFilePath = &quot;&quot;,

  [CallerLineNumber] int sourceLineNumber = 0)

{

  var list = PushProperties(memberName, sourceFilePath, sourceLineNumber);

  _logger.LogWarning(message);

  foreach (var item in list)

  {

    item.Dispose();

  }

}

Конфигурация ведения журнала

Начните с замены стандартного средства ведения журнала инфраструктурой Serilog, добавив новый класс по имени LoggingConfiguration в каталог Logging проекта AutoLot.Services. Модифицируйте операторы using и сделайте класс открытым и статическим:

using System;

using System.Collections.Generic;

using System.Data;

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.Hosting;

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

using Microsoft.Extensions.Logging;

using Serilog;

using Serilog.Events;

using Serilog.Sinks.MSSqlServer;

namespace AutoLot.Services.Logging

{

  public static class LoggingConfiguration

  {

  }

}

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

private static readonly string OutputTemplate =

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

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

{MemberName} at {FilePath}:{LineNumber}{NewLine} {Exception}{NewLine}&quot;;

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

private static readonly ColumnOptions ColumnOptions = new ColumnOptions

{

  AdditionalColumns = new List&lt;SqlColumn&gt;

  {

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = &quot;ApplicationName&quot;},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = &quot;MachineName&quot;},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = &quot;MemberName&quot;},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = &quot;FilePath&quot;},

    new SqlColumn {DataType = SqlDbType.Int, ColumnName = &quot;LineNumber&quot;},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = &quot;SourceContext&quot;},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = &quot;RequestPath&quot;},

    new SqlColumn {DataType = SqlDbType.VarChar, ColumnName = &quot;ActionName&quot;},

  }

};

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

1 ... 590 591 592 593 594 595 596 597 598 ... 642
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Комментарии
Открыть боковую панель
Комментарии
Лариса
Лариса 11.03.2026 - 20:17
Странно,здесь имя девочки Аграфена,а на других сайтах я прослушала три книги этого цикла с именем Дарвина.Зачем менять имя и путать читателей? Опечатка- не Дарвина,  а  Дарина.
Григорий
Григорий 09.04.2025 - 22:24
Лучшая книга всех времен
Женя
Женя 02.04.2025 - 16:08
Любимая книга