Loggerrework (#45)

* test some refactoring for cachedplayer

* rework logging

* fix saving of log level

---------

Co-authored-by: rootdarkarchon <root.darkarchon@outlook.com>
This commit is contained in:
rootdarkarchon
2023-02-18 15:23:38 +01:00
committed by GitHub
parent 7f36e80e2a
commit 2ae5d42e4d
49 changed files with 676 additions and 691 deletions

View File

@@ -1,4 +1,4 @@
using MareSynchronos.Utils;
using Microsoft.Extensions.Logging;
namespace MareSynchronos.Mediator;
@@ -7,6 +7,12 @@ public class MareMediator : IDisposable
private record MediatorSubscriber(IMediatorSubscriber Subscriber, Action<IMessage> Action);
private readonly Dictionary<Type, HashSet<MediatorSubscriber>> _subscriberDict = new();
private readonly ILogger<MareMediator> _logger;
public MareMediator(ILogger<MareMediator> logger)
{
_logger = logger;
}
public void Subscribe<T>(IMediatorSubscriber subscriber, Action<IMessage> action) where T : IMessage
{
@@ -38,7 +44,7 @@ public class MareMediator : IDisposable
}
catch (Exception ex)
{
Logger.Error("Error executing " + message.GetType() + " for subscriber " + subscriber + ", removing from Mediator", ex);
_logger.LogCritical("Error executing " + message.GetType() + " for subscriber " + subscriber + ", removing from Mediator", ex);
subscribers.RemoveWhere(s => s == subscriber);
}
}
@@ -51,13 +57,13 @@ public class MareMediator : IDisposable
{
var unSubbed = kvp.Value.RemoveWhere(p => p.Subscriber == subscriber);
if (unSubbed > 0)
Logger.Verbose(subscriber + " unsubscribed from " + kvp.Key.Name);
_logger.LogTrace(subscriber + " unsubscribed from " + kvp.Key.Name);
}
}
public void Dispose()
{
Logger.Verbose($"Disposing {GetType()}");
_logger.LogTrace($"Disposing {GetType()}");
_subscriberDict.Clear();
}
}

View File

@@ -1,18 +1,20 @@
using MareSynchronos.Utils;
using Microsoft.Extensions.Logging;
namespace MareSynchronos.Mediator;
public abstract class MediatorSubscriberBase : IMediatorSubscriber
{
protected ILogger _logger { get; }
public MareMediator Mediator { get; }
protected MediatorSubscriberBase(MareMediator mediator)
protected MediatorSubscriberBase(ILogger logger, MareMediator mediator)
{
_logger = logger;
Mediator = mediator;
}
public virtual void Dispose()
{
Logger.Verbose($"Disposing {GetType()}");
_logger.LogTrace($"Disposing {GetType()}");
Mediator.UnsubscribeAll(this);
}
}

View File

@@ -1,19 +1,22 @@
using Dalamud.Interface.Windowing;
using MareSynchronos.Utils;
using Microsoft.Extensions.Logging;
namespace MareSynchronos.Mediator;
public abstract class WindowMediatorSubscriberBase : Window, IMediatorSubscriber
{
protected readonly ILogger _logger;
public MareMediator Mediator { get; }
protected WindowMediatorSubscriberBase(MareMediator mediator, string name) : base(name)
protected WindowMediatorSubscriberBase(ILogger logger, MareMediator mediator, string name) : base(name)
{
_logger = logger;
Mediator = mediator;
}
public virtual void Dispose()
{
Logger.Verbose($"Disposing {GetType()}");
_logger.LogTrace($"Disposing {GetType()}");
Mediator.UnsubscribeAll(this);
}
}