Обновил методы логирования
This commit is contained in:
46
SfeduSchedule/Logging/LoggerExtensions.cs
Normal file
46
SfeduSchedule/Logging/LoggerExtensions.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace SfeduSchedule.Logging;
|
||||
|
||||
public static class LoggerExtensions
|
||||
{
|
||||
public static void LogTraceHere(this ILogger logger, string message, [CallerMemberName] string memberName = "")
|
||||
{
|
||||
logger.LogTrace("[{Member}] {Message}", memberName, message);
|
||||
}
|
||||
|
||||
public static void LogDebugHere(this ILogger logger, string message, [CallerMemberName] string memberName = "")
|
||||
{
|
||||
logger.LogDebug("[{Member}] {Message}", memberName, message);
|
||||
}
|
||||
|
||||
public static void LogInformationHere(this ILogger logger, string message, [CallerMemberName] string memberName = "")
|
||||
{
|
||||
logger.LogInformation("[{Member}] {Message}", memberName, message);
|
||||
}
|
||||
|
||||
public static void LogWarningHere(this ILogger logger, string message, [CallerMemberName] string memberName = "")
|
||||
{
|
||||
logger.LogWarning("[{Member}] {Message}", memberName, message);
|
||||
}
|
||||
|
||||
public static void LogErrorHere(this ILogger logger, string message, [CallerMemberName] string memberName = "")
|
||||
{
|
||||
logger.LogError("[{Member}] {Message}", memberName, message);
|
||||
}
|
||||
|
||||
public static void LogErrorHere(this ILogger logger, Exception exception, string message, [CallerMemberName] string memberName = "")
|
||||
{
|
||||
logger.LogError(exception, "[{Member}] {Message}", memberName, message);
|
||||
}
|
||||
|
||||
public static void LogCriticalHere(this ILogger logger, string message, [CallerMemberName] string memberName = "")
|
||||
{
|
||||
logger.LogCritical("[{Member}] {Message}", memberName, message);
|
||||
}
|
||||
|
||||
public static void LogCriticalHere(this ILogger logger, Exception exception, string message, [CallerMemberName] string memberName = "")
|
||||
{
|
||||
logger.LogCritical(exception, "[{Member}] {Message}", memberName, message);
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ using System.Text.Json;
|
||||
using Microsoft.Net.Http.Headers;
|
||||
using ModeusSchedule.Abstractions;
|
||||
using ModeusSchedule.Abstractions.DTO;
|
||||
using SfeduSchedule.Logging;
|
||||
|
||||
namespace SfeduSchedule.Services;
|
||||
|
||||
@@ -23,7 +24,7 @@ public class ModeusHttpClient
|
||||
public void SetToken(string? token)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(token)) {
|
||||
_logger.LogError("SetToken: Предоставленный токен пустой.");
|
||||
_logger.LogErrorHere("Предоставленный токен пустой.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -40,8 +41,7 @@ public class ModeusHttpClient
|
||||
var response = await _httpClient.SendAsync(request);
|
||||
if (response.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
{
|
||||
_logger.LogError("GetScheduleAsync: Неуспешный статус при получении расписания: {StatusCode}, Request: {msr}",
|
||||
response.StatusCode, msr);
|
||||
_logger.LogErrorHere($"Неуспешный статус при получении расписания: {response.StatusCode}, Request: {JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions)}");
|
||||
return null;
|
||||
}
|
||||
return await response.Content.ReadAsStringAsync();
|
||||
@@ -54,8 +54,7 @@ public class ModeusHttpClient
|
||||
var response = await _httpClient.SendAsync(request);
|
||||
if (response.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
{
|
||||
_logger.LogError("GetAttendeesAsync: Неуспешный статус при получении расписания: {StatusCode}, eventId: {eventId}",
|
||||
response.StatusCode, eventId);
|
||||
_logger.LogErrorHere($"Неуспешный статус при получении расписания: {response.StatusCode}, eventId: {eventId}");
|
||||
}
|
||||
List<Attendees>? attendees;
|
||||
try
|
||||
@@ -65,7 +64,7 @@ public class ModeusHttpClient
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "GetAttendeesAsync: Deserialization failed.");
|
||||
_logger.LogErrorHere(ex, "Deserialization failed.");
|
||||
}
|
||||
|
||||
return new List<Attendees>();
|
||||
@@ -80,8 +79,7 @@ public class ModeusHttpClient
|
||||
var response = await _httpClient.SendAsync(request);
|
||||
if (response.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
{
|
||||
_logger.LogError("GetScheduleAsync: Неуспешный статус при получении расписания: {StatusCode}, Request: {requestDto}",
|
||||
response.StatusCode, requestDto);
|
||||
_logger.LogErrorHere($"Неуспешный статус при получении расписания: {response.StatusCode}, Request: {JsonSerializer.Serialize(requestDto, GlobalConsts.JsonSerializerOptions)}");
|
||||
return null;
|
||||
}
|
||||
return await response.Content.ReadAsStringAsync();
|
||||
@@ -99,11 +97,10 @@ public class ModeusHttpClient
|
||||
}), Encoding.UTF8, "application/json");
|
||||
var response = await _httpClient.SendAsync(request);
|
||||
|
||||
_logger.LogInformation("GetGuidAsync: Ответ получен: {StatusCode}", response.StatusCode);
|
||||
_logger.LogInformationHere($"Ответ получен: {response.StatusCode}");
|
||||
if (response.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
{
|
||||
_logger.LogError("GetGuidAsync: Неуспешный статус при получении расписания: {StatusCode}, Name: {fullName}",
|
||||
response.StatusCode, fullName);
|
||||
_logger.LogErrorHere($"Неуспешный статус при получении расписания: {response.StatusCode}, Name: {fullName}");
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -120,8 +117,7 @@ public class ModeusHttpClient
|
||||
}
|
||||
catch
|
||||
{
|
||||
_logger.LogWarning(
|
||||
"GetGuidAsync: не удалось получить идентификатор пользователя. FullName={FullName}", fullName);
|
||||
_logger.LogWarningHere($"Не удалось получить идентификатор пользователя. FullName={fullName}");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ using Ical.Net.DataTypes;
|
||||
using Ical.Net.Serialization;
|
||||
using ModeusSchedule.Abstractions;
|
||||
using ModeusSchedule.Abstractions.DTO;
|
||||
using SfeduSchedule.Logging;
|
||||
|
||||
namespace SfeduSchedule.Services;
|
||||
|
||||
@@ -30,7 +31,7 @@ public class ModeusService
|
||||
var schedule = await GetScheduleAsync(msr);
|
||||
if (schedule == null)
|
||||
{
|
||||
_logger.LogError("GetScheduleJsonAsync: schedule is null. {@Request}", msr);
|
||||
_logger.LogErrorHere($"schedule is null. {JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions)}");
|
||||
throw new Exception("Schedule is null");
|
||||
}
|
||||
|
||||
@@ -41,25 +42,16 @@ public class ModeusService
|
||||
switch (scheduleJson)
|
||||
{
|
||||
case null:
|
||||
_logger.LogError(
|
||||
"GetScheduleJsonAsync: scheduleJson is null. Schedule: {Schedule}\n Request: {msr}",
|
||||
schedule, JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions));
|
||||
_logger.LogErrorHere($"scheduleJson is null. Schedule: {schedule}\n Request: {JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions)}");
|
||||
break;
|
||||
case { Embedded: null }:
|
||||
_logger.LogError(
|
||||
"GetScheduleJsonAsync: scheduleJson.Embedded is null. Response: {@response}\nscheduleJson: {@scheduleJson}\n Request: {msr}",
|
||||
schedule, scheduleJson, JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions));
|
||||
_logger.LogErrorHere($"scheduleJson.Embedded is null. Response: {schedule}\nscheduleJson: {scheduleJson}\n Request: {JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions)}");
|
||||
break;
|
||||
case { Embedded.Events: null }:
|
||||
_logger.LogError(
|
||||
"GetScheduleJsonAsync: scheduleJson.Embedded.Events is null. Response: {@response}\nEmbedded: {@Embedded}\n Request: {msr}",
|
||||
schedule, scheduleJson.Embedded,
|
||||
JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions));
|
||||
_logger.LogErrorHere($"scheduleJson.Embedded.Events is null. Response: {schedule}\nscheduleJson: {scheduleJson}\n Request: {JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions)}");
|
||||
break;
|
||||
case { Embedded.Events.Length: 0 }:
|
||||
_logger.LogWarning(
|
||||
"GetScheduleJsonAsync: scheduleJson.Embedded.Events is empty. Embedded: {@Embedded}\n Request: {msr}",
|
||||
scheduleJson.Embedded, JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions));
|
||||
_logger.LogWarningHere($"scheduleJson.Embedded.Events is empty. Embedded: {scheduleJson.Embedded}\n Request: {JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions)}");
|
||||
break;
|
||||
default:
|
||||
return scheduleJson;
|
||||
@@ -67,9 +59,7 @@ public class ModeusService
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex,
|
||||
"GetScheduleJsonAsync: Deserialization failed. Schedule: {Schedule}\n Request: {msr}", schedule,
|
||||
JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions));
|
||||
_logger.LogErrorHere($"Deserialization failed. Schedule: {schedule}\n Request: {JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions)}\n Exception: {ex}");
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -80,8 +70,7 @@ public class ModeusService
|
||||
var scheduleJson = await GetScheduleJsonAsync(msr);
|
||||
if (scheduleJson == null)
|
||||
{
|
||||
_logger.LogError("GetIcsAsync: scheduleJson is null after deserialization. Request: " +
|
||||
JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions));
|
||||
_logger.LogErrorHere($"scheduleJson is null after deserialization. Request: {JsonSerializer.Serialize(msr, GlobalConsts.JsonSerializerOptions)}");
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -189,8 +178,7 @@ public class ModeusService
|
||||
|
||||
var serializer = new CalendarSerializer();
|
||||
var serializedCalendar = serializer.SerializeToString(calendar);
|
||||
_logger.LogInformation("GetIcsAsync: serialized calendar created. Length: {Length}",
|
||||
serializedCalendar?.Length ?? 0);
|
||||
_logger.LogInformationHere($"serialized calendar created. Length: {serializedCalendar?.Length ?? 0}");
|
||||
return serializedCalendar;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user