From 737b6dd8924a1b3f882b8b49c6fa3882e3ba3c1e Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 21 Oct 2020 13:59:01 +0200 Subject: [PATCH] Log failed exceptions. --- .../Rules/RuleDequeuerGrain.cs | 10 ++++++++++ ...DequeuerTests.cs => RuleDequeuerGrainTests.cs} | 15 +++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) rename backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/{RuleDequeuerTests.cs => RuleDequeuerGrainTests.cs} (92%) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDequeuerGrain.cs b/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDequeuerGrain.cs index cb8a15375..cb7a01fed 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDequeuerGrain.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDequeuerGrain.cs @@ -116,6 +116,16 @@ namespace Squidex.Domain.Apps.Entities.Rules }; await ruleEventRepository.UpdateAsync(@event.Job, update); + + if (response.Status == RuleResult.Failed) + { + log.LogWarning(response.Exception!, w => w + .WriteProperty("action", "SendRuleEvent") + .WriteProperty("status", "Failed") + .WriteProperty("ruleId", @event.Job.RuleId.ToString()) + .WriteProperty("ruleDescription", @event.Job.Description) + .WriteProperty("dump", response.Dump)); + } } catch (Exception ex) { diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDequeuerTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDequeuerGrainTests.cs similarity index 92% rename from backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDequeuerTests.cs rename to backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDequeuerGrainTests.cs index b4fded291..2b9f60446 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDequeuerTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/RuleDequeuerGrainTests.cs @@ -20,7 +20,7 @@ using Xunit; namespace Squidex.Domain.Apps.Entities.Rules { - public class RuleDequeuerTests + public class RuleDequeuerGrainTests { private readonly IClock clock = A.Fake(); private readonly ISemanticLog log = A.Dummy(); @@ -28,7 +28,7 @@ namespace Squidex.Domain.Apps.Entities.Rules private readonly RuleService ruleService = A.Fake(); private readonly RuleDequeuerGrain sut; - public RuleDequeuerTests() + public RuleDequeuerGrainTests() { A.CallTo(() => clock.GetCurrentInstant()) .Returns(SystemClock.Instance.GetCurrentInstant().WithoutMs()); @@ -126,6 +126,17 @@ namespace Squidex.Domain.Apps.Entities.Rules await sut.HandleAsync(@event); + if (result == RuleResult.Failed) + { + A.CallTo(() => log.Log(SemanticLogLevel.Warning, A._, A._)) + .MustHaveHappened(); + } + else + { + A.CallTo(() => log.Log(SemanticLogLevel.Warning, A._, A._)) + .MustNotHaveHappened(); + } + A.CallTo(() => ruleEventRepository.UpdateAsync(@event.Job, A.That.Matches(x => x.Elapsed == requestElapsed &&