Move LoggingService to API library

Add Additional Logging For SignalR
This commit is contained in:
Alan Moon 2025-07-14 19:07:54 -07:00
parent 0432fec3cd
commit 75b61c0a8c
4 changed files with 45 additions and 10 deletions

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
using System.Diagnostics;
using System.Text.Json;
namespace qtc_net_client_2.Services
namespace QtCNETAPI.Services
{
public class LoggingService : IDisposable
{
@ -16,7 +16,7 @@ namespace qtc_net_client_2.Services
public LoggingService()
{
LogDate = DateTime.Now;
LogFilePath = $"./Logs/QtCClientLog_{LogDate.ToString("ddMMyyy-hhmm")}.log";
LogFilePath = $"./Logs/QtCClientLog_{LogDate:ddMMyyy-hhmm}.log";
// create log file
@ -30,8 +30,8 @@ namespace qtc_net_client_2.Services
{
try
{
Debug.WriteLine($"({DateTime.Now.ToLocalTime().ToString("hh:mm")}) {message}");
LogFile.WriteLine($"({DateTime.Now.ToLocalTime().ToString("hh:mm")}) {message}");
Debug.WriteLine($"({DateTime.Now.ToLocalTime():hh:mm}) {message}");
LogFile.WriteLine($"({DateTime.Now.ToLocalTime():hh:mm}) {message}");
} catch (ObjectDisposedException)
{
}
@ -45,8 +45,8 @@ namespace qtc_net_client_2.Services
string modelSerialized = JsonSerializer.Serialize(model, options: new JsonSerializerOptions { WriteIndented = true });
// log it
Debug.WriteLine($"({DateTime.Now.ToLocalTime().ToString("hh:mm")}) {modelSerialized}");
LogFile.WriteLine($"({DateTime.Now.ToLocalTime().ToString("hh:mm")}) {modelSerialized}");
Debug.WriteLine($"({DateTime.Now.ToLocalTime():hh:mm}) {modelSerialized}");
LogFile.WriteLine($"({DateTime.Now.ToLocalTime():hh:mm}) {modelSerialized}");
} catch (ObjectDisposedException)
{
}

View File

@ -8,6 +8,7 @@ using qtc_net_client_2.Services;
using qtc_net_client_2.ClientModel;
using System.Threading.Tasks;
using QtCNETAPI.Schema;
using QtCNETAPI.Services;
namespace qtc_net_client_2
{
@ -15,7 +16,9 @@ namespace qtc_net_client_2
{
private IApiService _apiService;
private IGatewayService _gatewayService;
private Config _config;
private ServerConfig _serverConfig;
private AudioService AudioService = new();
private LoggingService LoggingService;
@ -878,8 +881,36 @@ namespace qtc_net_client_2
else Environment.Exit(0);
}
private void _gatewayService_OnServerReconnecting(object? sender, EventArgs e) => BeginInvoke(delegate () { Enabled = false; });
private void _gatewayService_OnServerReconnected(object? sender, EventArgs e) => BeginInvoke(delegate () { Enabled = true; });
private void _gatewayService_OnServerReconnecting(object? sender, EventArgs e)
{
var args = (ServerConnectionReconnectingEventArgs)e;
if (args.Error == null)
LoggingService.LogString("Server Requested Reconnect. Reconnecting...");
else
LoggingService.LogString($"SignalR Reconnecting Due To An Error.\n{args.Error.Message}\n{args.Error.StackTrace}");
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
Enabled = false;
});
}
}
private void _gatewayService_OnServerReconnected(object? sender, EventArgs e)
{
LoggingService.LogString("SignalR Reconnected");
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
Enabled = true;
});
}
}
private async void _gatewayService_OnServerConfigReceived(object? sender, EventArgs e)
{
@ -888,8 +919,11 @@ namespace qtc_net_client_2
LoggingService.LogString($"Server Config Received");
LoggingService.LogModel(args.ServerConfig);
if (_serverConfig != null) return; // only set server config upon client restart, not during reconnect (preventing log spam)
if (args.ServerConfig != null)
{
_serverConfig = args.ServerConfig;
if (args.ServerConfig.IsDown)
{
LoggingService.LogString("Server Is Marked As Down");

View File

@ -1,6 +1,6 @@
using qtc_net_client_2.Services;
using QtCNETAPI.Dtos.User;
using QtCNETAPI.Dtos.User;
using QtCNETAPI.Schema;
using QtCNETAPI.Services;
using QtCNETAPI.Services.ApiService;
using System;
using System.Collections.Generic;

View File

@ -1,5 +1,6 @@
using qtc_net_client_2.ClientModel;
using qtc_net_client_2.Services;
using QtCNETAPI.Services;
using QtCNETAPI.Services.ApiService;
using QtCNETAPI.Services.GatewayService;
using System.Text.Json;