Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
namespace AutoLot.Services.Logging{ public class AppLogging<T> : IAppLogging<T> { private readonly ILogger<T> _logger; private readonly IConfiguration _config; private readonly string _applicationName; public AppLogging(ILogger<T> logger, IConfiguration config) { _logger = logger; _config = config; _applicationName = config.GetValue<string>("ApplicationName"); } }}Инфраструктура Serilog позволяет добавлять свойства в стандартный процесс ведения журнала, заталкивая их внутрь
LogContextMemberNameFilePathLineNumberApplicationNameinternal List<IDisposable> PushProperties( string memberName, string sourceFilePath, int sourceLineNumber){ List<IDisposable> list = new List<IDisposable> { LogContext.PushProperty("MemberName", memberName), LogContext.PushProperty("FilePath", sourceFilePath), LogContext.PushProperty("LineNumber", sourceLineNumber), LogContext.PushProperty("ApplicationName", _applicationName) }; return list;}Каждая реализация метода следует одному и тому же процессу. На первом шаге вызывается метод
PushProperties()LoggerExtensionsILogger<T>public void LogAppError(Exception exception, string message, [CallerMemberName] string memberName = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0){ var list = PushProperties(memberName, sourceFilePath, sourceLineNumber); _logger.LogError(exception, message); foreach (var item in list) { item.Dispose(); }}public void LogAppError(string message, [CallerMemberName] string memberName = "", [CallerFilePath] string sourceFilePath = "", [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 = "", [CallerFilePath] string sourceFilePath = "", [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 = "", [CallerFilePath] string sourceFilePath = "", [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 = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0){ var list = PushProperties(memberName, sourceFilePath, sourceLineNumber);