mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-12 11:15:43 +02:00
273de41d23
Added udp logging Added SyncProvider to provide async long running tasks Refactored SyncSeries to SyncProvider Episode Info is now fetched automatically Optimized RefreshEpisodeInfo for better performance
87 lines
2.4 KiB
C#
87 lines
2.4 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Text;
|
|
using Exceptioneer.WindowsFormsClient;
|
|
using NLog;
|
|
using NLog.Config;
|
|
using NLog.Targets;
|
|
|
|
namespace NzbDrone.Core
|
|
{
|
|
public static class Instrumentation
|
|
{
|
|
public static void Setup()
|
|
{
|
|
if (Debugger.IsAttached)
|
|
{
|
|
LogManager.ThrowExceptions = true;
|
|
}
|
|
|
|
LogManager.Configuration = new XmlLoggingConfiguration(Path.Combine(CentralDispatch.AppPath, "log.config"), false);
|
|
LogManager.ConfigurationReloaded += ((s, e) => BindExceptioneer());
|
|
BindExceptioneer();
|
|
}
|
|
|
|
private static void BindExceptioneer()
|
|
{
|
|
var exTarget = new ExceptioneerTarget();
|
|
LogManager.Configuration.AddTarget("Exceptioneer", exTarget);
|
|
LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", LogLevel.Error, exTarget));
|
|
LogManager.Configuration.Reload();
|
|
}
|
|
|
|
|
|
|
|
public class NlogWriter : TextWriter
|
|
{
|
|
private static readonly Logger Logger = LogManager.GetLogger("DB");
|
|
|
|
|
|
public override void Write(char[] buffer, int index, int count)
|
|
{
|
|
Write(new string(buffer, index, count));
|
|
}
|
|
|
|
public override void Write(string value)
|
|
{
|
|
DbAction(value);
|
|
}
|
|
|
|
private static void DbAction(string value)
|
|
{
|
|
Logger.Trace(value);
|
|
}
|
|
|
|
public override Encoding Encoding
|
|
{
|
|
get { return Encoding.Default; }
|
|
}
|
|
}
|
|
|
|
|
|
public class ExceptioneerTarget : Target
|
|
{
|
|
protected override void Write(LogEventInfo logEvent)
|
|
{
|
|
if (logEvent.Exception == null)
|
|
throw new InvalidOperationException(@"Missing Exception Object.. Please Use Logger.FatalException() or Logger.ErrorException() rather
|
|
than Logger.Fatal() and Logger.Error()");
|
|
|
|
if (!Debugger.IsAttached)
|
|
{
|
|
new Client
|
|
{
|
|
ApiKey = "43BBF60A-EB2A-4C1C-B09E-422ADF637265",
|
|
ApplicationName = "NZBDrone",
|
|
CurrentException = logEvent.Exception
|
|
}.Submit();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|