public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId,

    string message, params object[] args)

  public static void Log(this ILogger logger, LogLevel logLevel,

    Exception exception, string message, params object[] args)

  public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId,

    Exception exception, string message, params object[] args)

}

Яркая характеристика ASP.NET Core связана с расширяемостью конвейера в целом и с ведением журнала в частности. Стандартное средство ведения журнала может быть заменено другой инфраструктурой ведения журнала при условии, что новая инфраструктура способна интегрироваться с установленным шаблоном ведения журнала. Serilog — одна из инфраструктур, которая хорошо интегрируется с ASP.NET Core. В последующих разделах демонстрируется создание инфраструктуры ведения журнала, основанной на Serilog, и конфигурирование приложений ASP.NET Core для использования нового кода регистрации в журнале.

<p id="AutBody_Root1398"><strong>Интерфейс IAppLogging</strong></p>

 Начните с добавления в проект AutoLot.Services нового каталога по имени Logging. Добавьте в этот каталог новый файл под названием IAppLogging.cs для интерфейса IAppLogging. Приведите содержимое файла IAppLogging.cs к следующему виду:

using System;

using System.Runtime.CompilerServices;

namespace AutoLot.Services.Logging

{

  public interface IAppLogging

  {

    void LogAppError(Exception exception, string message,

      [CallerMemberName] string memberName = "",

      [CallerFilePath] string sourceFilePath = "",

      [CallerLineNumber] int sourceLineNumber = 0);

    void LogAppError(string message,

      [CallerMemberName] string memberName = "",

      [CallerFilePath] string sourceFilePath = "",

      [CallerLineNumber] int sourceLineNumber = 0);

    void LogAppCritical(Exception exception, string message,

      [CallerMemberName] string memberName = "",

      [CallerFilePath] string sourceFilePath = "",

      [CallerLineNumber] int sourceLineNumber = 0);

    void LogAppCritical(string message,

      [CallerMemberName] string memberName = "",

      [CallerFilePath] string sourceFilePath = "",

      [CallerLineNumber] int sourceLineNumber = 0);

    void LogAppDebug(string message,

      [CallerMemberName] string memberName = "",

      [CallerFilePath] string sourceFilePath = "",

      [CallerLineNumber] int sourceLineNumber = 0);

    void LogAppTrace(string message,

      [CallerMemberName] string memberName = "",

      [CallerFilePath] string sourceFilePath = "",

      [CallerLineNumber] int sourceLineNumber = 0);

    void LogAppInformation(string message,

      [CallerMemberName] string memberName = "",

      [CallerFilePath] string sourceFilePath = "",

      [CallerLineNumber] int sourceLineNumber = 0);

    void LogAppWarning(string message,

      [CallerMemberName] string memberName = "",

      [CallerFilePath] string sourceFilePath = "",

      [CallerLineNumber] int sourceLineNumber = 0);

  }

}

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

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