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