Radarr/src/NzbDrone.Host/Owin/NlogTextWriter.cs

77 lines
1.8 KiB
C#
Raw Normal View History

2014-03-05 07:11:38 +00:00
using System.IO;
using System.Text;
using NLog;
2017-01-05 19:42:02 +00:00
namespace Radarr.Host.Owin
{
public class NlogTextWriter : TextWriter
{
2013-11-30 21:56:41 +00:00
private readonly Logger _logger;
2013-11-30 21:56:41 +00:00
public NlogTextWriter(Logger logger)
{
_logger = logger;
}
2016-12-09 06:54:15 +00:00
public override Encoding Encoding => Encoding.Default;
2013-09-11 06:33:47 +00:00
public override void Write(char[] buffer, int index, int count)
{
2013-09-11 06:33:47 +00:00
Write(buffer);
}
public override void Write(char[] buffer)
{
2013-09-11 06:33:47 +00:00
Write(new string(buffer));
}
public override void Write(string value)
{
_logger.Log(GetLogLevel(value), value);
}
2013-09-11 06:33:47 +00:00
public override void Write(char value)
{
2013-09-11 06:33:47 +00:00
_logger.Trace(value);
}
private LogLevel GetLogLevel(string value)
{
2015-05-02 08:23:04 +00:00
var lower = value.ToLowerInvariant();
if (!lower.Contains("error"))
{
return LogLevel.Trace;
}
if (lower.Contains("sqlite"))
{
return LogLevel.Trace;
}
if (lower.Contains("\"errors\":null"))
{
return LogLevel.Trace;
}
2015-05-31 07:10:45 +00:00
if (lower.Contains("signalr"))
{
2015-05-31 07:10:45 +00:00
if (lower.Contains("an operation was attempted on a nonexistent network connection"))
{
return LogLevel.Trace;
}
2015-05-31 07:10:45 +00:00
if (lower.Contains("the network connection was aborted by the local system"))
{
return LogLevel.Trace;
}
if (lower.Contains("the socket has been shut down"))
{
return LogLevel.Trace;
}
}
return LogLevel.Error;
}
}
}