From 397d3c93df1d239601a0045c1c2fa2e60d377034 Mon Sep 17 00:00:00 2001 From: Glax Date: Thu, 8 May 2025 03:36:32 +0200 Subject: [PATCH] More logging --- API/MangaDownloadClients/DownloadClient.cs | 2 +- API/Schema/LibraryConnectors/Kavita.cs | 6 +- API/Schema/LibraryConnectors/Komga.cs | 6 +- .../LibraryConnectors/LibraryConnector.cs | 7 ++ API/Schema/LibraryConnectors/NetClient.cs | 68 ++++++++++--------- 5 files changed, 52 insertions(+), 37 deletions(-) diff --git a/API/MangaDownloadClients/DownloadClient.cs b/API/MangaDownloadClients/DownloadClient.cs index 7c136bb..2a5dd22 100644 --- a/API/MangaDownloadClients/DownloadClient.cs +++ b/API/MangaDownloadClients/DownloadClient.cs @@ -31,7 +31,7 @@ internal abstract class DownloadClient _lastExecutedRateLimit.TryAdd(requestType, now.Subtract(timeBetweenRequests)); TimeSpan rateLimitTimeout = timeBetweenRequests.Subtract(now.Subtract(_lastExecutedRateLimit[requestType])); - Log.Debug($"Request limit {rateLimit}/Minute timeBetweenRequests: {timeBetweenRequests} Timeout: {rateLimitTimeout}"); + Log.Debug($"Request limit {rateLimit}/Minute timeBetweenRequests: {timeBetweenRequests:ss.fff} Timeout: {rateLimitTimeout:ss.fff}"); if (rateLimitTimeout > TimeSpan.Zero) { diff --git a/API/Schema/LibraryConnectors/Kavita.cs b/API/Schema/LibraryConnectors/Kavita.cs index e87ebf8..f6a68e6 100644 --- a/API/Schema/LibraryConnectors/Kavita.cs +++ b/API/Schema/LibraryConnectors/Kavita.cs @@ -73,12 +73,14 @@ public class Kavita : LibraryConnector Stream data = NetClient.MakeRequest($"{BaseUrl}/api/Library/libraries", "Bearer", Auth); if (data == Stream.Null) { - return Array.Empty(); + Log.Info("No libraries found"); + return []; } JsonArray? result = JsonSerializer.Deserialize(data); if (result is null) { - return Array.Empty(); + Log.Info("No libraries found"); + return []; } List ret = new(); diff --git a/API/Schema/LibraryConnectors/Komga.cs b/API/Schema/LibraryConnectors/Komga.cs index eb2a108..b56848e 100644 --- a/API/Schema/LibraryConnectors/Komga.cs +++ b/API/Schema/LibraryConnectors/Komga.cs @@ -38,12 +38,14 @@ public class Komga : LibraryConnector Stream data = NetClient.MakeRequest($"{BaseUrl}/api/v1/libraries", "Basic", Auth); if (data == Stream.Null) { - return Array.Empty(); + Log.Info("No libraries found"); + return []; } JsonArray? result = JsonSerializer.Deserialize(data); if (result is null) { - return Array.Empty(); + Log.Info("No libraries found"); + return []; } HashSet ret = new(); diff --git a/API/Schema/LibraryConnectors/LibraryConnector.cs b/API/Schema/LibraryConnectors/LibraryConnector.cs index 9a7b8c4..ddbacd0 100644 --- a/API/Schema/LibraryConnectors/LibraryConnector.cs +++ b/API/Schema/LibraryConnectors/LibraryConnector.cs @@ -1,5 +1,8 @@ using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using log4net; using Microsoft.EntityFrameworkCore; +using Newtonsoft.Json; namespace API.Schema.LibraryConnectors; @@ -20,6 +23,10 @@ public abstract class LibraryConnector(string libraryConnectorId, LibraryType li [Required] public string Auth { get; init; } = auth; + [JsonIgnore] + [NotMapped] + protected ILog Log { get; init; } = LogManager.GetLogger($"{libraryType.ToString()} {baseUrl}"); + protected abstract void UpdateLibraryInternal(); internal abstract bool Test(); } \ No newline at end of file diff --git a/API/Schema/LibraryConnectors/NetClient.cs b/API/Schema/LibraryConnectors/NetClient.cs index a2a472b..23579cd 100644 --- a/API/Schema/LibraryConnectors/NetClient.cs +++ b/API/Schema/LibraryConnectors/NetClient.cs @@ -1,48 +1,52 @@ using System.Net; using System.Net.Http.Headers; +using log4net; namespace API.Schema.LibraryConnectors; public class NetClient { + private static ILog Log = LogManager.GetLogger(typeof(NetClient)); + public static Stream MakeRequest(string url, string authScheme, string auth) + { + Log.Debug($"Requesting {url}"); + HttpClient client = new(); + client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authScheme, auth); + + HttpRequestMessage requestMessage = new() { - HttpClient client = new(); - client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authScheme, auth); - - HttpRequestMessage requestMessage = new () - { - Method = HttpMethod.Get, - RequestUri = new Uri(url) - }; - try - { + Method = HttpMethod.Get, + RequestUri = new Uri(url) + }; + try + { + HttpResponseMessage response = client.Send(requestMessage); - HttpResponseMessage response = client.Send(requestMessage); - - if (response.StatusCode is HttpStatusCode.Unauthorized && - response.RequestMessage!.RequestUri!.AbsoluteUri != url) - return MakeRequest(response.RequestMessage!.RequestUri!.AbsoluteUri, authScheme, auth); - else if (response.IsSuccessStatusCode) - return response.Content.ReadAsStream(); - else - return Stream.Null; - } - catch (Exception e) - { - switch (e) - { - case HttpRequestException: - - break; - default: - throw; - } + if (response.StatusCode is HttpStatusCode.Unauthorized && + response.RequestMessage!.RequestUri!.AbsoluteUri != url) + return MakeRequest(response.RequestMessage!.RequestUri!.AbsoluteUri, authScheme, auth); + else if (response.IsSuccessStatusCode) + return response.Content.ReadAsStream(); + else return Stream.Null; - } } + catch (Exception e) + { + switch (e) + { + case HttpRequestException: + Log.Debug(e); + break; + default: + throw; + } + Log.Info("Failed to make request"); + return Stream.Null; + } + } - public static bool MakePost(string url, string authScheme, string auth) + public static bool MakePost(string url, string authScheme, string auth) { HttpClient client = new() {