From 918fcac2aa7c2be09ae04e26b7e273c2ed6dd602 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 28 Apr 2015 07:28:05 -0700 Subject: [PATCH] Fixed: Generic SignalR messages no longer treated as errors --- .../GlobalExceptionHandlers.cs | 2 +- src/NzbDrone.Host/Owin/NlogTextWriter.cs | 36 ++++++++++++++----- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/NzbDrone.Common/Instrumentation/GlobalExceptionHandlers.cs b/src/NzbDrone.Common/Instrumentation/GlobalExceptionHandlers.cs index b650b0542..7d51bc4a3 100644 --- a/src/NzbDrone.Common/Instrumentation/GlobalExceptionHandlers.cs +++ b/src/NzbDrone.Common/Instrumentation/GlobalExceptionHandlers.cs @@ -31,7 +31,7 @@ namespace NzbDrone.Common.Instrumentation if (exception is NullReferenceException && exception.ToString().Contains("Microsoft.AspNet.SignalR.Transports.TransportHeartbeat.ProcessServerCommand")) { - Logger.Warn("SignalR Heartbeat error."); + Logger.Warn("SignalR Heartbeat interupted"); return; } diff --git a/src/NzbDrone.Host/Owin/NlogTextWriter.cs b/src/NzbDrone.Host/Owin/NlogTextWriter.cs index cc1ba4627..92154a0c7 100644 --- a/src/NzbDrone.Host/Owin/NlogTextWriter.cs +++ b/src/NzbDrone.Host/Owin/NlogTextWriter.cs @@ -32,19 +32,39 @@ namespace NzbDrone.Host.Owin public override void Write(string value) { - if (value.ToLower().Contains("error") && !(value.ToLower().Contains("sqlite") || value.ToLower().Contains("\"errors\":null"))) - { - _logger.Error(value); - } - else - { - _logger.Trace(value); - } + _logger.Log(GetLogLevel(value), value); } public override void Write(char value) { _logger.Trace(value); } + + private LogLevel GetLogLevel(string value) + { + var lower = value; + + if (!lower.Contains("error")) + { + return LogLevel.Trace; + } + + if (lower.Contains("sqlite")) + { + return LogLevel.Trace; + } + + if (lower.Contains("\"errors\":null")) + { + return LogLevel.Trace; + } + + if (lower.Contains("signalr") && lower.Contains("an operation was attempted on a nonexistent network connection")) + { + return LogLevel.Trace; + } + + return LogLevel.Error; + } } } \ No newline at end of file