From 72fbee9c46253c7d14dbdd1835e8b23337bb00d9 Mon Sep 17 00:00:00 2001 From: Basique Evangelist Date: Mon, 9 Dec 2019 10:47:26 +0000 Subject: [PATCH] Add logging to RequestChain and TimeoutManager --- JetKarmaBot/JetKarmaBot.cs | 2 +- JetKarmaBot/Services/Handling/RequestChain.cs | 11 ++++++++++- JetKarmaBot/Services/Handling/TimeoutManager.cs | 5 +++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/JetKarmaBot/JetKarmaBot.cs b/JetKarmaBot/JetKarmaBot.cs index 1d27d6e..9e6e8c2 100644 --- a/JetKarmaBot/JetKarmaBot.cs +++ b/JetKarmaBot/JetKarmaBot.cs @@ -97,7 +97,7 @@ namespace JetKarmaBot void InitChain(IContainer c) { - Chain = new RequestChain(); + Chain = c.ResolveObject(new RequestChain()); Chain.Add(c.GetInstance()); Chain.Add(c.GetInstance()); Chain.Add(Timeout); diff --git a/JetKarmaBot/Services/Handling/RequestChain.cs b/JetKarmaBot/Services/Handling/RequestChain.cs index f71f99a..8c5cad3 100644 --- a/JetKarmaBot/Services/Handling/RequestChain.cs +++ b/JetKarmaBot/Services/Handling/RequestChain.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using NLog; +using Perfusion; namespace JetKarmaBot.Services.Handling { @@ -10,6 +12,7 @@ namespace JetKarmaBot.Services.Handling } public class RequestChain : IRequestHandler { + [Inject] private Logger log; List handlerStack = new List(); public async Task Handle(RequestContext ctx, Func next = null) { @@ -17,8 +20,13 @@ namespace JetKarmaBot.Services.Handling Func chainNext = null; chainNext = (newCtx) => { - if (i == handlerStack.Count) return Task.CompletedTask; + if (i == handlerStack.Count) + { + log.ConditionalTrace("(next) End of request chain"); + return Task.CompletedTask; + } IRequestHandler handler = handlerStack[i++]; + log.ConditionalTrace($"(next) Executing handler {handler.GetType().Name}"); return handler.Handle(newCtx, chainNext); }; await chainNext(ctx); @@ -27,6 +35,7 @@ namespace JetKarmaBot.Services.Handling } public void Add(IRequestHandler handler) { + log.ConditionalTrace($"Adding {handler.GetType().Name} to reqchain"); handlerStack.Add(handler); } } diff --git a/JetKarmaBot/Services/Handling/TimeoutManager.cs b/JetKarmaBot/Services/Handling/TimeoutManager.cs index 5df1d59..8a5891a 100644 --- a/JetKarmaBot/Services/Handling/TimeoutManager.cs +++ b/JetKarmaBot/Services/Handling/TimeoutManager.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using JetKarmaBot.Models; using System.Threading; using System.Linq; +using NLog; namespace JetKarmaBot.Services.Handling { @@ -39,6 +40,7 @@ namespace JetKarmaBot.Services.Handling [Inject] private KarmaContextFactory Db; [Inject] private Config cfg; [Inject] private Localization Locale; + [Inject] private Logger log; public Dictionary TimeoutCache = new Dictionary(); private async Task ApplyCost(string name, bool succeded, int uid, KarmaContext db) { @@ -65,6 +67,7 @@ namespace JetKarmaBot.Services.Handling { if (!TimeoutCache.ContainsKey(uid)) { + log.ConditionalTrace($"User {uid} not present: saving to cache"); TimeoutCache[uid] = new TimeoutStats() { CooldownDate = (await db.Users.FindAsync(uid))?.CooldownDate ?? DateTime.Now @@ -73,6 +76,7 @@ namespace JetKarmaBot.Services.Handling } public async Task Save(CancellationToken ct = default(CancellationToken)) { + log.Info("Saving timeout info to database"); using (KarmaContext db = Db.GetContext()) { foreach (int i in TimeoutCache.Keys) @@ -81,6 +85,7 @@ namespace JetKarmaBot.Services.Handling } await db.SaveChangesAsync(ct); } + log.Info("Saved"); } public async Task SaveLoop(CancellationToken ct = default(CancellationToken)) {