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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

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

namespace AutoLot.Services.Logging

{

  public class AppLogging&lt;T&gt; : IAppLogging&lt;T&gt;

  {

    private readonly ILogger&lt;T&gt; _logger;

    private readonly IConfiguration _config;

    private readonly string _applicationName;

    public AppLogging(ILogger&lt;T&gt; logger, IConfiguration config)

    {

      _logger = logger;

      _config = config;

      _applicationName = config.GetValue&lt;string&gt;(&quot;ApplicationName&quot;);

    }

  }

}

Инфраструктура Serilog позволяет добавлять свойства в стандартный процесс ведения журнала, заталкивая их внутрь LogContext. Добавьте внутренний метод для заталкивания свойств MemberName, FilePath, LineNumber и ApplicationName:

internal List&lt;IDisposable&gt; PushProperties(

  string memberName,

  string sourceFilePath,

  int sourceLineNumber)

{

  List&lt;IDisposable&gt; list = new List&lt;IDisposable&gt;

  {

    LogContext.PushProperty(&quot;MemberName&quot;, memberName),

    LogContext.PushProperty(&quot;FilePath&quot;, sourceFilePath),

    LogContext.PushProperty(&quot;LineNumber&quot;, sourceLineNumber),

    LogContext.PushProperty(&quot;ApplicationName&quot;, _applicationName)

  };

  return list;

}

Каждая реализация метода следует одному и тому же процессу. На первом шаге вызывается метод PushProperties() для добавления дополнительных свойств и затем соответствующий метод регистрации в журнале, предоставляемый LoggerExtensions в ILogger&lt;T&gt;. Ниже приведены все реализованные методы интерфейса:

public void LogAppError(Exception exception, string message,

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

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

  [CallerLineNumber] int sourceLineNumber = 0)

{

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

  _logger.LogError(exception, message);

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

  foreach (var item in list)

  {

    item.Dispose();

  }

}

public void LogAppError(string message,

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

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

  [CallerLineNumber] int sourceLineNumber = 0)

{

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

  _logger.LogError(message);

  foreach (var item in list)

  {

    item.Dispose();

  }

}

public void LogAppCritical(Exception exception, string message,

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

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

  [CallerLineNumber] int sourceLineNumber = 0)

{

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

  _logger.LogCritical(exception, message);

  foreach (var item in list)

  {

    item.Dispose();

  }

}

public void LogAppCritical(string message,

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

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

  [CallerLineNumber] int sourceLineNumber = 0)

{

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

  _logger.LogCritical(message);

  foreach (var item in list)

  {

    item.Dispose();

  }

}

public void LogAppDebug(string message,

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

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

  [CallerLineNumber] int sourceLineNumber = 0)

{

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

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