mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-10-30 07:22:35 +01:00
safer log configuration
This commit is contained in:
parent
b7b4c568be
commit
0a341199a8
@ -1,8 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using LogentriesCore;
|
using LogentriesCore;
|
||||||
|
using LogentriesNLog.fastJSON;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NLog.Targets;
|
using NLog.Targets;
|
||||||
using NzbDrone.Common.Exceptron.fastJSON;
|
|
||||||
|
|
||||||
namespace LogentriesNLog
|
namespace LogentriesNLog
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace NzbDrone.Common.Exceptron.fastJSON
|
namespace LogentriesNLog.fastJSON
|
||||||
{
|
{
|
||||||
internal class Getters
|
internal class Getters
|
||||||
{
|
{
|
||||||
|
@ -11,7 +11,7 @@ using System.Reflection;
|
|||||||
using System.Reflection.Emit;
|
using System.Reflection.Emit;
|
||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
namespace NzbDrone.Common.Exceptron.fastJSON
|
namespace LogentriesNLog.fastJSON
|
||||||
{
|
{
|
||||||
|
|
||||||
internal class JSON
|
internal class JSON
|
||||||
|
@ -6,7 +6,7 @@ using System.Collections;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace NzbDrone.Common.Exceptron.fastJSON
|
namespace LogentriesNLog.fastJSON
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This class encodes and decodes JSON strings.
|
/// This class encodes and decodes JSON strings.
|
||||||
|
@ -9,7 +9,7 @@ using System.Globalization;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace NzbDrone.Common.Exceptron.fastJSON
|
namespace LogentriesNLog.fastJSON
|
||||||
{
|
{
|
||||||
internal class JSONSerializer
|
internal class JSONSerializer
|
||||||
{
|
{
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace NzbDrone.Common.Exceptron.fastJSON
|
namespace LogentriesNLog.fastJSON
|
||||||
{
|
{
|
||||||
internal class SafeDictionary<TKey, TValue>
|
internal class SafeDictionary<TKey, TValue>
|
||||||
{
|
{
|
||||||
|
@ -15,17 +15,16 @@ namespace NzbDrone.Api
|
|||||||
public class NancyBootstrapper : TinyIoCNancyBootstrapper
|
public class NancyBootstrapper : TinyIoCNancyBootstrapper
|
||||||
{
|
{
|
||||||
private readonly TinyIoCContainer _tinyIoCContainer;
|
private readonly TinyIoCContainer _tinyIoCContainer;
|
||||||
private readonly Logger _logger;
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(NancyBootstrapper));
|
||||||
|
|
||||||
public NancyBootstrapper(TinyIoCContainer tinyIoCContainer)
|
public NancyBootstrapper(TinyIoCContainer tinyIoCContainer)
|
||||||
{
|
{
|
||||||
_tinyIoCContainer = tinyIoCContainer;
|
_tinyIoCContainer = tinyIoCContainer;
|
||||||
_logger = NzbDroneLogger.GetLogger();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
|
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
|
||||||
{
|
{
|
||||||
_logger.Info("Starting NzbDrone API");
|
Logger.Info("Starting NzbDrone API");
|
||||||
|
|
||||||
if (RuntimeInfoBase.IsProduction)
|
if (RuntimeInfoBase.IsProduction)
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,7 @@ namespace NzbDrone.Automation.Test
|
|||||||
{
|
{
|
||||||
driver = new FirefoxDriver();
|
driver = new FirefoxDriver();
|
||||||
|
|
||||||
_runner = new NzbDroneRunner();
|
_runner = new NzbDroneRunner(LogManager.GetCurrentClassLogger());
|
||||||
_runner.KillAll();
|
_runner.KillAll();
|
||||||
_runner.Start();
|
_runner.Start();
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ namespace NzbDrone.Common.Disk
|
|||||||
{
|
{
|
||||||
public abstract class DiskProviderBase : IDiskProvider
|
public abstract class DiskProviderBase : IDiskProvider
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(DiskProviderBase));
|
||||||
|
|
||||||
public abstract long? GetAvailableSpace(string path);
|
public abstract long? GetAvailableSpace(string path);
|
||||||
public abstract void InheritFolderPermissions(string filename);
|
public abstract void InheritFolderPermissions(string filename);
|
||||||
|
@ -6,7 +6,7 @@ namespace NzbDrone.Common.Instrumentation
|
|||||||
{
|
{
|
||||||
public static class GlobalExceptionHandlers
|
public static class GlobalExceptionHandlers
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(GlobalExceptionHandlers));
|
||||||
public static void Register()
|
public static void Register()
|
||||||
{
|
{
|
||||||
AppDomain.CurrentDomain.UnhandledException += ((s, e) => AppDomainException(e.ExceptionObject as Exception));
|
AppDomain.CurrentDomain.UnhandledException += ((s, e) => AppDomainException(e.ExceptionObject as Exception));
|
||||||
|
@ -1,146 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
|
||||||
using LogentriesNLog;
|
|
||||||
using NLog;
|
|
||||||
using NLog.Config;
|
|
||||||
using NLog.Targets;
|
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
|
|
||||||
namespace NzbDrone.Common.Instrumentation
|
|
||||||
{
|
|
||||||
public static class LogTargets
|
|
||||||
{
|
|
||||||
public static void Register(IStartupContext startupContext, bool updateApp, bool inConsole)
|
|
||||||
{
|
|
||||||
var appFolderInfo = new AppFolderInfo(startupContext);
|
|
||||||
|
|
||||||
LogManager.Configuration = new LoggingConfiguration();
|
|
||||||
|
|
||||||
if (Debugger.IsAttached)
|
|
||||||
{
|
|
||||||
RegisterDebugger();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Disabling for now - until its fixed or we yank it out
|
|
||||||
//RegisterExceptron();
|
|
||||||
|
|
||||||
if (updateApp)
|
|
||||||
{
|
|
||||||
RegisterUpdateFile(appFolderInfo);
|
|
||||||
RegisterLogEntries();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (inConsole && (OsInfo.IsNotWindows || RuntimeInfoBase.IsUserInteractive))
|
|
||||||
{
|
|
||||||
RegisterConsole();
|
|
||||||
}
|
|
||||||
|
|
||||||
RegisterAppFile(appFolderInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
LogManager.ReconfigExistingLoggers();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void RegisterLogEntries()
|
|
||||||
{
|
|
||||||
var target = new LogentriesTarget();
|
|
||||||
target.Name = "logentriesTarget";
|
|
||||||
target.Token = "d3a83ee9-74fb-4045-ad25-a84c1d4d7c81";
|
|
||||||
target.LogHostname = true;
|
|
||||||
target.Debug = false;
|
|
||||||
|
|
||||||
var loggingRule = new LoggingRule("*", LogLevel.Info, target);
|
|
||||||
LogManager.Configuration.AddTarget("logentries", target);
|
|
||||||
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void RegisterDebugger()
|
|
||||||
{
|
|
||||||
DebuggerTarget target = new DebuggerTarget();
|
|
||||||
target.Name = "debuggerLogger";
|
|
||||||
target.Layout = "[${level}] [${threadid}] ${logger}: ${message} ${onexception:inner=${newline}${newline}${exception:format=ToString}${newline}}";
|
|
||||||
|
|
||||||
var loggingRule = new LoggingRule("*", LogLevel.Trace, target);
|
|
||||||
LogManager.Configuration.AddTarget("debugger", target);
|
|
||||||
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static void RegisterConsole()
|
|
||||||
{
|
|
||||||
var level = LogLevel.Trace;
|
|
||||||
|
|
||||||
if (RuntimeInfoBase.IsProduction)
|
|
||||||
{
|
|
||||||
level = LogLevel.Info;
|
|
||||||
}
|
|
||||||
|
|
||||||
var coloredConsoleTarget = new ColoredConsoleTarget();
|
|
||||||
|
|
||||||
coloredConsoleTarget.Name = "consoleLogger";
|
|
||||||
coloredConsoleTarget.Layout = "[${level}] ${logger}: ${message} ${onexception:inner=${newline}${newline}${exception:format=ToString}${newline}}";
|
|
||||||
|
|
||||||
var loggingRule = new LoggingRule("*", level, coloredConsoleTarget);
|
|
||||||
|
|
||||||
LogManager.Configuration.AddTarget("console", coloredConsoleTarget);
|
|
||||||
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
|
||||||
}
|
|
||||||
|
|
||||||
const string FILE_LOG_LAYOUT = @"${date:format=yy-M-d HH\:mm\:ss.f}|${level}|${logger}|${message}${onexception:inner=${newline}${newline}${exception:format=ToString}${newline}}";
|
|
||||||
|
|
||||||
private static void RegisterAppFile(IAppFolderInfo appFolderInfo)
|
|
||||||
{
|
|
||||||
var fileTarget = new NzbDroneFileTarget();
|
|
||||||
|
|
||||||
fileTarget.Name = "rollingFileLogger";
|
|
||||||
fileTarget.FileName = Path.Combine(appFolderInfo.GetLogFolder(), "nzbdrone.txt");
|
|
||||||
fileTarget.AutoFlush = true;
|
|
||||||
fileTarget.KeepFileOpen = false;
|
|
||||||
fileTarget.ConcurrentWrites = false;
|
|
||||||
fileTarget.ConcurrentWriteAttemptDelay = 50;
|
|
||||||
fileTarget.ConcurrentWriteAttempts = 10;
|
|
||||||
fileTarget.ArchiveAboveSize = 1024000;
|
|
||||||
fileTarget.MaxArchiveFiles = 5;
|
|
||||||
fileTarget.EnableFileDelete = true;
|
|
||||||
fileTarget.ArchiveNumbering = ArchiveNumberingMode.Rolling;
|
|
||||||
fileTarget.Layout = FILE_LOG_LAYOUT;
|
|
||||||
|
|
||||||
var loggingRule = new LoggingRule("*", LogLevel.Trace, fileTarget);
|
|
||||||
|
|
||||||
LogManager.Configuration.AddTarget("appfile", fileTarget);
|
|
||||||
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void RegisterUpdateFile(IAppFolderInfo appFolderInfo)
|
|
||||||
{
|
|
||||||
var fileTarget = new FileTarget();
|
|
||||||
|
|
||||||
fileTarget.Name = "updateFileLogger";
|
|
||||||
fileTarget.FileName = Path.Combine(appFolderInfo.GetUpdateLogFolder(), DateTime.Now.ToString("yyyy.MM.dd-HH.mm") + ".txt");
|
|
||||||
fileTarget.AutoFlush = true;
|
|
||||||
fileTarget.KeepFileOpen = false;
|
|
||||||
fileTarget.ConcurrentWrites = false;
|
|
||||||
fileTarget.ConcurrentWriteAttemptDelay = 50;
|
|
||||||
fileTarget.ConcurrentWriteAttempts = 100;
|
|
||||||
fileTarget.Layout = FILE_LOG_LAYOUT;
|
|
||||||
|
|
||||||
var loggingRule = new LoggingRule("*", LogLevel.Trace, fileTarget);
|
|
||||||
|
|
||||||
LogManager.Configuration.AddTarget("updateFile", fileTarget);
|
|
||||||
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void RegisterExceptron()
|
|
||||||
{
|
|
||||||
var exceptronTarget = new ExceptronTarget();
|
|
||||||
var rule = new LoggingRule("*", LogLevel.Warn, exceptronTarget);
|
|
||||||
|
|
||||||
LogManager.Configuration.AddTarget("ExceptronTarget", exceptronTarget);
|
|
||||||
LogManager.Configuration.LoggingRules.Add(rule);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +1,170 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using LogentriesNLog;
|
||||||
using NLog;
|
using NLog;
|
||||||
|
using NLog.Config;
|
||||||
|
using NLog.Targets;
|
||||||
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
namespace NzbDrone.Common.Instrumentation
|
namespace NzbDrone.Common.Instrumentation
|
||||||
{
|
{
|
||||||
public static class NzbDroneLogger
|
public static class NzbDroneLogger
|
||||||
{
|
{
|
||||||
public static Logger GetLogger()
|
private static bool _isConfigured;
|
||||||
|
|
||||||
|
static NzbDroneLogger()
|
||||||
{
|
{
|
||||||
string loggerName;
|
LogManager.Configuration = new LoggingConfiguration();
|
||||||
Type declaringType;
|
}
|
||||||
int framesToSkip = 1;
|
|
||||||
do
|
|
||||||
|
public static void Register(IStartupContext startupContext, bool updateApp, bool inConsole)
|
||||||
|
{
|
||||||
|
if (_isConfigured)
|
||||||
{
|
{
|
||||||
var frame = new StackFrame(framesToSkip, false);
|
throw new InvalidOperationException("Loggers have already been registered.");
|
||||||
var method = frame.GetMethod();
|
}
|
||||||
declaringType = method.DeclaringType;
|
|
||||||
if (declaringType == null)
|
_isConfigured = true;
|
||||||
|
|
||||||
|
var appFolderInfo = new AppFolderInfo(startupContext);
|
||||||
|
|
||||||
|
if (Debugger.IsAttached)
|
||||||
|
{
|
||||||
|
RegisterDebugger();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Disabling for now - until its fixed or we yank it out
|
||||||
|
//RegisterExceptron();
|
||||||
|
|
||||||
|
if (updateApp)
|
||||||
|
{
|
||||||
|
RegisterUpdateFile(appFolderInfo);
|
||||||
|
RegisterLogEntries();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (inConsole && (OsInfo.IsNotWindows || RuntimeInfoBase.IsUserInteractive))
|
||||||
{
|
{
|
||||||
loggerName = method.Name;
|
RegisterConsole();
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
framesToSkip++;
|
RegisterAppFile(appFolderInfo);
|
||||||
loggerName = declaringType.Name;
|
}
|
||||||
} while (declaringType.Module.Name.Equals("mscorlib.dll", StringComparison.OrdinalIgnoreCase));
|
|
||||||
|
|
||||||
return LogManager.GetLogger(loggerName);
|
LogManager.ReconfigExistingLoggers();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RegisterLogEntries()
|
||||||
|
{
|
||||||
|
var target = new LogentriesTarget();
|
||||||
|
target.Name = "logentriesTarget";
|
||||||
|
target.Token = "d3a83ee9-74fb-4045-ad25-a84c1d4d7c81";
|
||||||
|
target.LogHostname = true;
|
||||||
|
target.Debug = false;
|
||||||
|
|
||||||
|
var loggingRule = new LoggingRule("*", LogLevel.Info, target);
|
||||||
|
LogManager.Configuration.AddTarget("logentries", target);
|
||||||
|
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RegisterDebugger()
|
||||||
|
{
|
||||||
|
DebuggerTarget target = new DebuggerTarget();
|
||||||
|
target.Name = "debuggerLogger";
|
||||||
|
target.Layout = "[${level}] [${threadid}] ${logger}: ${message} ${onexception:inner=${newline}${newline}${exception:format=ToString}${newline}}";
|
||||||
|
|
||||||
|
var loggingRule = new LoggingRule("*", LogLevel.Trace, target);
|
||||||
|
LogManager.Configuration.AddTarget("debugger", target);
|
||||||
|
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static void RegisterConsole()
|
||||||
|
{
|
||||||
|
var level = LogLevel.Trace;
|
||||||
|
|
||||||
|
if (RuntimeInfoBase.IsProduction)
|
||||||
|
{
|
||||||
|
level = LogLevel.Info;
|
||||||
|
}
|
||||||
|
|
||||||
|
var coloredConsoleTarget = new ColoredConsoleTarget();
|
||||||
|
|
||||||
|
coloredConsoleTarget.Name = "consoleLogger";
|
||||||
|
coloredConsoleTarget.Layout = "[${level}] ${logger}: ${message} ${onexception:inner=${newline}${newline}${exception:format=ToString}${newline}}";
|
||||||
|
|
||||||
|
var loggingRule = new LoggingRule("*", level, coloredConsoleTarget);
|
||||||
|
|
||||||
|
LogManager.Configuration.AddTarget("console", coloredConsoleTarget);
|
||||||
|
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
||||||
|
}
|
||||||
|
|
||||||
|
const string FILE_LOG_LAYOUT = @"${date:format=yy-M-d HH\:mm\:ss.f}|${level}|${logger}|${message}${onexception:inner=${newline}${newline}${exception:format=ToString}${newline}}";
|
||||||
|
|
||||||
|
private static void RegisterAppFile(IAppFolderInfo appFolderInfo)
|
||||||
|
{
|
||||||
|
var fileTarget = new NzbDroneFileTarget();
|
||||||
|
|
||||||
|
fileTarget.Name = "rollingFileLogger";
|
||||||
|
fileTarget.FileName = Path.Combine(appFolderInfo.GetLogFolder(), "nzbdrone.txt");
|
||||||
|
fileTarget.AutoFlush = true;
|
||||||
|
fileTarget.KeepFileOpen = false;
|
||||||
|
fileTarget.ConcurrentWrites = false;
|
||||||
|
fileTarget.ConcurrentWriteAttemptDelay = 50;
|
||||||
|
fileTarget.ConcurrentWriteAttempts = 10;
|
||||||
|
fileTarget.ArchiveAboveSize = 1024000;
|
||||||
|
fileTarget.MaxArchiveFiles = 5;
|
||||||
|
fileTarget.EnableFileDelete = true;
|
||||||
|
fileTarget.ArchiveNumbering = ArchiveNumberingMode.Rolling;
|
||||||
|
fileTarget.Layout = FILE_LOG_LAYOUT;
|
||||||
|
|
||||||
|
var loggingRule = new LoggingRule("*", LogLevel.Trace, fileTarget);
|
||||||
|
|
||||||
|
LogManager.Configuration.AddTarget("appfile", fileTarget);
|
||||||
|
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RegisterUpdateFile(IAppFolderInfo appFolderInfo)
|
||||||
|
{
|
||||||
|
var fileTarget = new FileTarget();
|
||||||
|
|
||||||
|
fileTarget.Name = "updateFileLogger";
|
||||||
|
fileTarget.FileName = Path.Combine(appFolderInfo.GetUpdateLogFolder(), DateTime.Now.ToString("yyyy.MM.dd-HH.mm") + ".txt");
|
||||||
|
fileTarget.AutoFlush = true;
|
||||||
|
fileTarget.KeepFileOpen = false;
|
||||||
|
fileTarget.ConcurrentWrites = false;
|
||||||
|
fileTarget.ConcurrentWriteAttemptDelay = 50;
|
||||||
|
fileTarget.ConcurrentWriteAttempts = 100;
|
||||||
|
fileTarget.Layout = FILE_LOG_LAYOUT;
|
||||||
|
|
||||||
|
var loggingRule = new LoggingRule("*", LogLevel.Trace, fileTarget);
|
||||||
|
|
||||||
|
LogManager.Configuration.AddTarget("updateFile", fileTarget);
|
||||||
|
LogManager.Configuration.LoggingRules.Add(loggingRule);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RegisterExceptron()
|
||||||
|
{
|
||||||
|
var exceptronTarget = new ExceptronTarget();
|
||||||
|
var rule = new LoggingRule("*", LogLevel.Warn, exceptronTarget);
|
||||||
|
|
||||||
|
LogManager.Configuration.AddTarget("ExceptronTarget", exceptronTarget);
|
||||||
|
LogManager.Configuration.LoggingRules.Add(rule);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Logger GetLogger(Type obj)
|
||||||
|
{
|
||||||
|
return LogManager.GetLogger(obj.Name.Replace("NzbDrone.", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Logger GetLogger(object obj)
|
public static Logger GetLogger(object obj)
|
||||||
{
|
{
|
||||||
return LogManager.GetLogger(obj.GetType().Name);
|
return GetLogger(obj.GetType());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Logger GetLogger<T>()
|
|
||||||
{
|
|
||||||
return LogManager.GetLogger(typeof(T).Name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -158,7 +158,6 @@
|
|||||||
<Compile Include="Instrumentation\Extensions\LoggerProgressExtensions.cs" />
|
<Compile Include="Instrumentation\Extensions\LoggerProgressExtensions.cs" />
|
||||||
<Compile Include="Instrumentation\GlobalExceptionHandlers.cs" />
|
<Compile Include="Instrumentation\GlobalExceptionHandlers.cs" />
|
||||||
<Compile Include="Instrumentation\LogEventExtensions.cs" />
|
<Compile Include="Instrumentation\LogEventExtensions.cs" />
|
||||||
<Compile Include="Instrumentation\LogTargets.cs" />
|
|
||||||
<Compile Include="Instrumentation\NzbDroneFileTarget.cs" />
|
<Compile Include="Instrumentation\NzbDroneFileTarget.cs" />
|
||||||
<Compile Include="Instrumentation\NzbDroneLogger.cs" />
|
<Compile Include="Instrumentation\NzbDroneLogger.cs" />
|
||||||
<Compile Include="Instrumentation\VersionLayoutRenderer.cs" />
|
<Compile Include="Instrumentation\VersionLayoutRenderer.cs" />
|
||||||
|
@ -31,11 +31,16 @@ namespace NzbDrone.Common.Processes
|
|||||||
|
|
||||||
public class ProcessProvider : IProcessProvider
|
public class ProcessProvider : IProcessProvider
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private readonly Logger _logger;
|
||||||
|
|
||||||
public const string NZB_DRONE_PROCESS_NAME = "NzbDrone";
|
public const string NZB_DRONE_PROCESS_NAME = "NzbDrone";
|
||||||
public const string NZB_DRONE_CONSOLE_PROCESS_NAME = "NzbDrone.Console";
|
public const string NZB_DRONE_CONSOLE_PROCESS_NAME = "NzbDrone.Console";
|
||||||
|
|
||||||
|
public ProcessProvider(Logger logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
public ProcessInfo GetCurrentProcess()
|
public ProcessInfo GetCurrentProcess()
|
||||||
{
|
{
|
||||||
return ConvertToProcessInfo(Process.GetCurrentProcess());
|
return ConvertToProcessInfo(Process.GetCurrentProcess());
|
||||||
@ -58,17 +63,17 @@ namespace NzbDrone.Common.Processes
|
|||||||
|
|
||||||
public ProcessInfo GetProcessById(int id)
|
public ProcessInfo GetProcessById(int id)
|
||||||
{
|
{
|
||||||
Logger.Debug("Finding process with Id:{0}", id);
|
_logger.Debug("Finding process with Id:{0}", id);
|
||||||
|
|
||||||
var processInfo = ConvertToProcessInfo(Process.GetProcesses().FirstOrDefault(p => p.Id == id));
|
var processInfo = ConvertToProcessInfo(Process.GetProcesses().FirstOrDefault(p => p.Id == id));
|
||||||
|
|
||||||
if (processInfo == null)
|
if (processInfo == null)
|
||||||
{
|
{
|
||||||
Logger.Warn("Unable to find process with ID {0}", id);
|
_logger.Warn("Unable to find process with ID {0}", id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Logger.Debug("Found process {0}", processInfo.ToString());
|
_logger.Debug("Found process {0}", processInfo.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return processInfo;
|
return processInfo;
|
||||||
@ -81,7 +86,7 @@ namespace NzbDrone.Common.Processes
|
|||||||
|
|
||||||
public void OpenDefaultBrowser(string url)
|
public void OpenDefaultBrowser(string url)
|
||||||
{
|
{
|
||||||
Logger.Info("Opening URL [{0}]", url);
|
_logger.Info("Opening URL [{0}]", url);
|
||||||
|
|
||||||
var process = new Process
|
var process = new Process
|
||||||
{
|
{
|
||||||
@ -161,7 +166,7 @@ namespace NzbDrone.Common.Processes
|
|||||||
path = "mono";
|
path = "mono";
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.Debug("Starting {0} {1}", path, args);
|
_logger.Debug("Starting {0} {1}", path, args);
|
||||||
|
|
||||||
var startInfo = new ProcessStartInfo(path, args);
|
var startInfo = new ProcessStartInfo(path, args);
|
||||||
var process = new Process
|
var process = new Process
|
||||||
@ -184,7 +189,7 @@ namespace NzbDrone.Common.Processes
|
|||||||
|
|
||||||
public void WaitForExit(Process process)
|
public void WaitForExit(Process process)
|
||||||
{
|
{
|
||||||
Logger.Debug("Waiting for process {0} to exit.", process.ProcessName);
|
_logger.Debug("Waiting for process {0} to exit.", process.ProcessName);
|
||||||
|
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
}
|
}
|
||||||
@ -193,7 +198,7 @@ namespace NzbDrone.Common.Processes
|
|||||||
{
|
{
|
||||||
var process = Process.GetProcessById(processId);
|
var process = Process.GetProcessById(processId);
|
||||||
|
|
||||||
Logger.Info("Updating [{0}] process priority from {1} to {2}",
|
_logger.Info("Updating [{0}] process priority from {1} to {2}",
|
||||||
process.ProcessName,
|
process.ProcessName,
|
||||||
process.PriorityClass,
|
process.PriorityClass,
|
||||||
priority);
|
priority);
|
||||||
@ -207,7 +212,7 @@ namespace NzbDrone.Common.Processes
|
|||||||
|
|
||||||
if (process == null)
|
if (process == null)
|
||||||
{
|
{
|
||||||
Logger.Warn("Cannot find process with id: {0}", processId);
|
_logger.Warn("Cannot find process with id: {0}", processId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,31 +220,31 @@ namespace NzbDrone.Common.Processes
|
|||||||
|
|
||||||
if (process.HasExited)
|
if (process.HasExited)
|
||||||
{
|
{
|
||||||
Logger.Debug("Process has already exited");
|
_logger.Debug("Process has already exited");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.Info("[{0}]: Killing process", process.Id);
|
_logger.Info("[{0}]: Killing process", process.Id);
|
||||||
process.Kill();
|
process.Kill();
|
||||||
Logger.Info("[{0}]: Waiting for exit", process.Id);
|
_logger.Info("[{0}]: Waiting for exit", process.Id);
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
Logger.Info("[{0}]: Process terminated successfully", process.Id);
|
_logger.Info("[{0}]: Process terminated successfully", process.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void KillAll(string processName)
|
public void KillAll(string processName)
|
||||||
{
|
{
|
||||||
var processes = GetProcessesByName(processName);
|
var processes = GetProcessesByName(processName);
|
||||||
|
|
||||||
Logger.Debug("Found {0} processes to kill", processes.Count);
|
_logger.Debug("Found {0} processes to kill", processes.Count);
|
||||||
|
|
||||||
foreach (var processInfo in processes)
|
foreach (var processInfo in processes)
|
||||||
{
|
{
|
||||||
Logger.Debug("Killing process: {0} [{1}]", processInfo.Id, processInfo.ProcessName);
|
_logger.Debug("Killing process: {0} [{1}]", processInfo.Id, processInfo.ProcessName);
|
||||||
Kill(processInfo.Id);
|
Kill(processInfo.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ProcessInfo ConvertToProcessInfo(Process process)
|
private ProcessInfo ConvertToProcessInfo(Process process)
|
||||||
{
|
{
|
||||||
if (process == null) return null;
|
if (process == null) return null;
|
||||||
|
|
||||||
@ -263,7 +268,7 @@ namespace NzbDrone.Common.Processes
|
|||||||
}
|
}
|
||||||
catch (Win32Exception e)
|
catch (Win32Exception e)
|
||||||
{
|
{
|
||||||
Logger.WarnException("Couldn't get process info for " + process.ProcessName, e);
|
_logger.WarnException("Couldn't get process info for " + process.ProcessName, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return processInfo;
|
return processInfo;
|
||||||
@ -280,7 +285,7 @@ namespace NzbDrone.Common.Processes
|
|||||||
return process.Modules.Cast<ProcessModule>().FirstOrDefault(module => module.ModuleName.ToLower().EndsWith(".exe")).FileName;
|
return process.Modules.Cast<ProcessModule>().FirstOrDefault(module => module.ModuleName.ToLower().EndsWith(".exe")).FileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Process> GetProcessesByName(string name)
|
private List<Process> GetProcessesByName(string name)
|
||||||
{
|
{
|
||||||
//TODO: move this to an OS specific class
|
//TODO: move this to an OS specific class
|
||||||
|
|
||||||
@ -294,7 +299,7 @@ namespace NzbDrone.Common.Processes
|
|||||||
var processes = Process.GetProcessesByName(name)
|
var processes = Process.GetProcessesByName(name)
|
||||||
.Union(monoProcesses).ToList();
|
.Union(monoProcesses).ToList();
|
||||||
|
|
||||||
Logger.Debug("Found {0} processes with the name: {1}", processes.Count, name);
|
_logger.Debug("Found {0} processes with the name: {1}", processes.Count, name);
|
||||||
|
|
||||||
return processes;
|
return processes;
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ namespace NzbDrone.Common.Security
|
|||||||
{
|
{
|
||||||
public static class X509CertificateValidationPolicy
|
public static class X509CertificateValidationPolicy
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(X509CertificateValidationPolicy));
|
||||||
|
|
||||||
public static void Register()
|
public static void Register()
|
||||||
{
|
{
|
||||||
|
@ -5,7 +5,6 @@ using System.Diagnostics;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.ServiceProcess;
|
using System.ServiceProcess;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common.Instrumentation;
|
|
||||||
using NzbDrone.Common.Processes;
|
using NzbDrone.Common.Processes;
|
||||||
|
|
||||||
namespace NzbDrone.Common
|
namespace NzbDrone.Common
|
||||||
@ -29,17 +28,18 @@ namespace NzbDrone.Common
|
|||||||
public const string NZBDRONE_SERVICE_NAME = "NzbDrone";
|
public const string NZBDRONE_SERVICE_NAME = "NzbDrone";
|
||||||
|
|
||||||
private readonly IProcessProvider _processProvider;
|
private readonly IProcessProvider _processProvider;
|
||||||
|
private readonly Logger _logger;
|
||||||
|
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
|
||||||
|
|
||||||
public ServiceProvider(IProcessProvider processProvider)
|
public ServiceProvider(IProcessProvider processProvider, Logger logger)
|
||||||
{
|
{
|
||||||
_processProvider = processProvider;
|
_processProvider = processProvider;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool ServiceExist(string name)
|
public virtual bool ServiceExist(string name)
|
||||||
{
|
{
|
||||||
Logger.Debug("Checking if service {0} exists.", name);
|
_logger.Debug("Checking if service {0} exists.", name);
|
||||||
return
|
return
|
||||||
ServiceController.GetServices().Any(
|
ServiceController.GetServices().Any(
|
||||||
s => String.Equals(s.ServiceName, name, StringComparison.InvariantCultureIgnoreCase));
|
s => String.Equals(s.ServiceName, name, StringComparison.InvariantCultureIgnoreCase));
|
||||||
@ -47,7 +47,7 @@ namespace NzbDrone.Common
|
|||||||
|
|
||||||
public virtual bool IsServiceRunning(string name)
|
public virtual bool IsServiceRunning(string name)
|
||||||
{
|
{
|
||||||
Logger.Debug("Checking if '{0}' service is running", name);
|
_logger.Debug("Checking if '{0}' service is running", name);
|
||||||
|
|
||||||
var service = ServiceController.GetServices()
|
var service = ServiceController.GetServices()
|
||||||
.SingleOrDefault(s => String.Equals(s.ServiceName, name, StringComparison.InvariantCultureIgnoreCase));
|
.SingleOrDefault(s => String.Equals(s.ServiceName, name, StringComparison.InvariantCultureIgnoreCase));
|
||||||
@ -61,7 +61,7 @@ namespace NzbDrone.Common
|
|||||||
|
|
||||||
public virtual void Install(string serviceName)
|
public virtual void Install(string serviceName)
|
||||||
{
|
{
|
||||||
Logger.Info("Installing service '{0}'", serviceName);
|
_logger.Info("Installing service '{0}'", serviceName);
|
||||||
|
|
||||||
|
|
||||||
var installer = new ServiceProcessInstaller
|
var installer = new ServiceProcessInstaller
|
||||||
@ -86,12 +86,12 @@ namespace NzbDrone.Common
|
|||||||
|
|
||||||
serviceInstaller.Install(new ListDictionary());
|
serviceInstaller.Install(new ListDictionary());
|
||||||
|
|
||||||
Logger.Info("Service Has installed successfully.");
|
_logger.Info("Service Has installed successfully.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void UnInstall(string serviceName)
|
public virtual void UnInstall(string serviceName)
|
||||||
{
|
{
|
||||||
Logger.Info("Uninstalling {0} service", serviceName);
|
_logger.Info("Uninstalling {0} service", serviceName);
|
||||||
|
|
||||||
Stop(serviceName);
|
Stop(serviceName);
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ namespace NzbDrone.Common
|
|||||||
serviceInstaller.ServiceName = serviceName;
|
serviceInstaller.ServiceName = serviceName;
|
||||||
serviceInstaller.Uninstall(null);
|
serviceInstaller.Uninstall(null);
|
||||||
|
|
||||||
Logger.Info("{0} successfully uninstalled", serviceName);
|
_logger.Info("{0} successfully uninstalled", serviceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Run(ServiceBase service)
|
public virtual void Run(ServiceBase service)
|
||||||
@ -117,15 +117,15 @@ namespace NzbDrone.Common
|
|||||||
|
|
||||||
public virtual void Stop(string serviceName)
|
public virtual void Stop(string serviceName)
|
||||||
{
|
{
|
||||||
Logger.Info("Stopping {0} Service...", serviceName);
|
_logger.Info("Stopping {0} Service...", serviceName);
|
||||||
var service = GetService(serviceName);
|
var service = GetService(serviceName);
|
||||||
if (service == null)
|
if (service == null)
|
||||||
{
|
{
|
||||||
Logger.Warn("Unable to stop {0}. no service with that name exists.", serviceName);
|
_logger.Warn("Unable to stop {0}. no service with that name exists.", serviceName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.Info("Service is currently {0}", service.Status);
|
_logger.Info("Service is currently {0}", service.Status);
|
||||||
|
|
||||||
if (service.Status != ServiceControllerStatus.Stopped)
|
if (service.Status != ServiceControllerStatus.Stopped)
|
||||||
{
|
{
|
||||||
@ -135,16 +135,16 @@ namespace NzbDrone.Common
|
|||||||
service.Refresh();
|
service.Refresh();
|
||||||
if (service.Status == ServiceControllerStatus.Stopped)
|
if (service.Status == ServiceControllerStatus.Stopped)
|
||||||
{
|
{
|
||||||
Logger.Info("{0} has stopped successfully.", serviceName);
|
_logger.Info("{0} has stopped successfully.", serviceName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Logger.Error("Service stop request has timed out. {0}", service.Status);
|
_logger.Error("Service stop request has timed out. {0}", service.Status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Logger.Warn("Service {0} is already in stopped state.", service.ServiceName);
|
_logger.Warn("Service {0} is already in stopped state.", service.ServiceName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,17 +155,17 @@ namespace NzbDrone.Common
|
|||||||
|
|
||||||
public void Start(string serviceName)
|
public void Start(string serviceName)
|
||||||
{
|
{
|
||||||
Logger.Info("Starting {0} Service...", serviceName);
|
_logger.Info("Starting {0} Service...", serviceName);
|
||||||
var service = GetService(serviceName);
|
var service = GetService(serviceName);
|
||||||
if (service == null)
|
if (service == null)
|
||||||
{
|
{
|
||||||
Logger.Warn("Unable to start '{0}' no service with that name exists.", serviceName);
|
_logger.Warn("Unable to start '{0}' no service with that name exists.", serviceName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (service.Status != ServiceControllerStatus.Paused && service.Status != ServiceControllerStatus.Stopped)
|
if (service.Status != ServiceControllerStatus.Paused && service.Status != ServiceControllerStatus.Stopped)
|
||||||
{
|
{
|
||||||
Logger.Warn("Service is in a state that can't be started. Current status: {0}", service.Status);
|
_logger.Warn("Service is in a state that can't be started. Current status: {0}", service.Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
service.Start();
|
service.Start();
|
||||||
@ -175,11 +175,11 @@ namespace NzbDrone.Common
|
|||||||
|
|
||||||
if (service.Status == ServiceControllerStatus.Running)
|
if (service.Status == ServiceControllerStatus.Running)
|
||||||
{
|
{
|
||||||
Logger.Info("{0} has started successfully.", serviceName);
|
_logger.Info("{0} has started successfully.", serviceName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Logger.Error("Service start request has timed out. {0}", service.Status);
|
_logger.Error("Service start request has timed out. {0}", service.Status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,18 +6,20 @@ namespace NzbDrone.Common.TPL
|
|||||||
{
|
{
|
||||||
public static class TaskExtensions
|
public static class TaskExtensions
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(TaskExtensions));
|
||||||
|
|
||||||
public static Task LogExceptions(this Task task)
|
public static Task LogExceptions(this Task task)
|
||||||
{
|
{
|
||||||
task.ContinueWith(t =>
|
task.ContinueWith(t =>
|
||||||
{
|
{
|
||||||
var aggregateException = t.Exception.Flatten();
|
if (t.Exception != null)
|
||||||
foreach (var exception in aggregateException.InnerExceptions)
|
|
||||||
{
|
{
|
||||||
Logger.ErrorException("Task Error", exception);
|
var aggregateException = t.Exception.Flatten();
|
||||||
|
foreach (var exception in aggregateException.InnerExceptions)
|
||||||
|
{
|
||||||
|
Logger.ErrorException("Task Error", exception);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}, TaskContinuationOptions.OnlyOnFaulted);
|
}, TaskContinuationOptions.OnlyOnFaulted);
|
||||||
|
|
||||||
return task;
|
return task;
|
||||||
|
@ -9,14 +9,14 @@ namespace NzbDrone.Console
|
|||||||
{
|
{
|
||||||
public static class ConsoleApp
|
public static class ConsoleApp
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(ConsoleApp));
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var startupArgs = new StartupContext(args);
|
var startupArgs = new StartupContext(args);
|
||||||
LogTargets.Register(startupArgs, false, true);
|
NzbDroneLogger.Register(startupArgs, false, true);
|
||||||
Bootstrap.Start(startupArgs, new ConsoleAlerts());
|
Bootstrap.Start(startupArgs, new ConsoleAlerts());
|
||||||
}
|
}
|
||||||
catch (SocketException exception)
|
catch (SocketException exception)
|
||||||
|
@ -35,9 +35,9 @@ namespace NzbDrone.Core.Test.InstrumentationTests
|
|||||||
LogManager.ReconfigExistingLoggers();
|
LogManager.ReconfigExistingLoggers();
|
||||||
|
|
||||||
|
|
||||||
_logger = NzbDroneLogger.GetLogger();
|
_logger = NzbDroneLogger.GetLogger(this);
|
||||||
|
|
||||||
_uniqueMessage = "Unique message: " + Guid.NewGuid().ToString();
|
_uniqueMessage = "Unique message: " + Guid.NewGuid();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -16,7 +16,7 @@ namespace NzbDrone.Core.Datastore
|
|||||||
{
|
{
|
||||||
private readonly Func<IDataMapper> _datamapperFactory;
|
private readonly Func<IDataMapper> _datamapperFactory;
|
||||||
|
|
||||||
private Logger logger = NzbDroneLogger.GetLogger();
|
private readonly Logger _logger = NzbDroneLogger.GetLogger(typeof(Database));
|
||||||
|
|
||||||
public Database(Func<IDataMapper> datamapperFactory)
|
public Database(Func<IDataMapper> datamapperFactory)
|
||||||
{
|
{
|
||||||
@ -42,13 +42,13 @@ namespace NzbDrone.Core.Datastore
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
logger.Info("Vacuuming database");
|
_logger.Info("Vacuuming database");
|
||||||
_datamapperFactory().ExecuteNonQuery("Vacuum;");
|
_datamapperFactory().ExecuteNonQuery("Vacuum;");
|
||||||
logger.Info("Database Compressed");
|
_logger.Info("Database Compressed");
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
logger.Error("An Error occurred while vacuuming database.", e);
|
_logger.Error("An Error occurred while vacuuming database.", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace NzbDrone.Core.Indexers
|
|||||||
{
|
{
|
||||||
public static class XElementExtensions
|
public static class XElementExtensions
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(XmlExtentions));
|
||||||
|
|
||||||
public static readonly Regex RemoveTimeZoneRegex = new Regex(@"\s[A-Z]{2,4}$", RegexOptions.Compiled);
|
public static readonly Regex RemoveTimeZoneRegex = new Regex(@"\s[A-Z]{2,4}$", RegexOptions.Compiled);
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@ using NLog;
|
|||||||
using NzbDrone.Common.Disk;
|
using NzbDrone.Common.Disk;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Common.Instrumentation;
|
|
||||||
using NzbDrone.Core.Configuration;
|
using NzbDrone.Core.Configuration;
|
||||||
using NzbDrone.Core.MediaFiles.Commands;
|
using NzbDrone.Core.MediaFiles.Commands;
|
||||||
using NzbDrone.Core.Messaging.Commands;
|
using NzbDrone.Core.Messaging.Commands;
|
||||||
@ -25,35 +24,36 @@ namespace NzbDrone.Core.MediaFiles
|
|||||||
{
|
{
|
||||||
private readonly IDiskProvider _diskProvider;
|
private readonly IDiskProvider _diskProvider;
|
||||||
private readonly IConfigService _configService;
|
private readonly IConfigService _configService;
|
||||||
|
private readonly Logger _logger;
|
||||||
|
|
||||||
private static readonly Logger logger = NzbDroneLogger.GetLogger();
|
|
||||||
|
|
||||||
public RecycleBinProvider(IDiskProvider diskProvider, IConfigService configService)
|
public RecycleBinProvider(IDiskProvider diskProvider, IConfigService configService, Logger logger)
|
||||||
{
|
{
|
||||||
_diskProvider = diskProvider;
|
_diskProvider = diskProvider;
|
||||||
_configService = configService;
|
_configService = configService;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteFolder(string path)
|
public void DeleteFolder(string path)
|
||||||
{
|
{
|
||||||
logger.Info("Attempting to send '{0}' to recycling bin", path);
|
_logger.Info("Attempting to send '{0}' to recycling bin", path);
|
||||||
var recyclingBin = _configService.RecycleBin;
|
var recyclingBin = _configService.RecycleBin;
|
||||||
|
|
||||||
if (String.IsNullOrWhiteSpace(recyclingBin))
|
if (String.IsNullOrWhiteSpace(recyclingBin))
|
||||||
{
|
{
|
||||||
logger.Info("Recycling Bin has not been configured, deleting permanently. {0}", path);
|
_logger.Info("Recycling Bin has not been configured, deleting permanently. {0}", path);
|
||||||
_diskProvider.DeleteFolder(path, true);
|
_diskProvider.DeleteFolder(path, true);
|
||||||
logger.Debug("Folder has been permanently deleted: {0}", path);
|
_logger.Debug("Folder has been permanently deleted: {0}", path);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var destination = Path.Combine(recyclingBin, new DirectoryInfo(path).Name);
|
var destination = Path.Combine(recyclingBin, new DirectoryInfo(path).Name);
|
||||||
|
|
||||||
logger.Debug("Moving '{0}' to '{1}'", path, destination);
|
_logger.Debug("Moving '{0}' to '{1}'", path, destination);
|
||||||
_diskProvider.MoveFolder(path, destination);
|
_diskProvider.MoveFolder(path, destination);
|
||||||
|
|
||||||
logger.Debug("Setting last accessed: {0}", path);
|
_logger.Debug("Setting last accessed: {0}", path);
|
||||||
_diskProvider.FolderSetLastWriteTime(destination, DateTime.UtcNow);
|
_diskProvider.FolderSetLastWriteTime(destination, DateTime.UtcNow);
|
||||||
foreach (var file in _diskProvider.GetFiles(destination, SearchOption.AllDirectories))
|
foreach (var file in _diskProvider.GetFiles(destination, SearchOption.AllDirectories))
|
||||||
{
|
{
|
||||||
@ -64,26 +64,26 @@ namespace NzbDrone.Core.MediaFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Debug("Folder has been moved to the recycling bin: {0}", destination);
|
_logger.Debug("Folder has been moved to the recycling bin: {0}", destination);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteFile(string path)
|
public void DeleteFile(string path)
|
||||||
{
|
{
|
||||||
logger.Debug("Attempting to send '{0}' to recycling bin", path);
|
_logger.Debug("Attempting to send '{0}' to recycling bin", path);
|
||||||
var recyclingBin = _configService.RecycleBin;
|
var recyclingBin = _configService.RecycleBin;
|
||||||
|
|
||||||
if (String.IsNullOrWhiteSpace(recyclingBin))
|
if (String.IsNullOrWhiteSpace(recyclingBin))
|
||||||
{
|
{
|
||||||
logger.Info("Recycling Bin has not been configured, deleting permanently. {0}", path);
|
_logger.Info("Recycling Bin has not been configured, deleting permanently. {0}", path);
|
||||||
|
|
||||||
if (OsInfo.IsWindows)
|
if (OsInfo.IsWindows)
|
||||||
{
|
{
|
||||||
logger.Debug(_diskProvider.GetFileAttributes(path));
|
_logger.Debug(_diskProvider.GetFileAttributes(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
_diskProvider.DeleteFile(path);
|
_diskProvider.DeleteFile(path);
|
||||||
logger.Debug("File has been permanently deleted: {0}", path);
|
_logger.Debug("File has been permanently deleted: {0}", path);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -105,7 +105,7 @@ namespace NzbDrone.Core.MediaFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Debug("Moving '{0}' to '{1}'", path, destination);
|
_logger.Debug("Moving '{0}' to '{1}'", path, destination);
|
||||||
_diskProvider.MoveFile(path, destination, true);
|
_diskProvider.MoveFile(path, destination, true);
|
||||||
|
|
||||||
//TODO: Better fix than this for non-Windows?
|
//TODO: Better fix than this for non-Windows?
|
||||||
@ -114,7 +114,7 @@ namespace NzbDrone.Core.MediaFiles
|
|||||||
_diskProvider.FileSetLastWriteTime(destination, DateTime.UtcNow);
|
_diskProvider.FileSetLastWriteTime(destination, DateTime.UtcNow);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Debug("File has been moved to the recycling bin: {0}", destination);
|
_logger.Debug("File has been moved to the recycling bin: {0}", destination);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,11 +122,11 @@ namespace NzbDrone.Core.MediaFiles
|
|||||||
{
|
{
|
||||||
if (String.IsNullOrWhiteSpace(_configService.RecycleBin))
|
if (String.IsNullOrWhiteSpace(_configService.RecycleBin))
|
||||||
{
|
{
|
||||||
logger.Info("Recycle Bin has not been configured, cannot empty.");
|
_logger.Info("Recycle Bin has not been configured, cannot empty.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Info("Removing all items from the recycling bin");
|
_logger.Info("Removing all items from the recycling bin");
|
||||||
|
|
||||||
foreach (var folder in _diskProvider.GetDirectories(_configService.RecycleBin))
|
foreach (var folder in _diskProvider.GetDirectories(_configService.RecycleBin))
|
||||||
{
|
{
|
||||||
@ -138,24 +138,24 @@ namespace NzbDrone.Core.MediaFiles
|
|||||||
_diskProvider.DeleteFile(file);
|
_diskProvider.DeleteFile(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Debug("Recycling Bin has been emptied.");
|
_logger.Debug("Recycling Bin has been emptied.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Cleanup()
|
public void Cleanup()
|
||||||
{
|
{
|
||||||
if (String.IsNullOrWhiteSpace(_configService.RecycleBin))
|
if (String.IsNullOrWhiteSpace(_configService.RecycleBin))
|
||||||
{
|
{
|
||||||
logger.Info("Recycle Bin has not been configured, cannot cleanup.");
|
_logger.Info("Recycle Bin has not been configured, cannot cleanup.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Info("Removing items older than 7 days from the recycling bin");
|
_logger.Info("Removing items older than 7 days from the recycling bin");
|
||||||
|
|
||||||
foreach (var folder in _diskProvider.GetDirectories(_configService.RecycleBin))
|
foreach (var folder in _diskProvider.GetDirectories(_configService.RecycleBin))
|
||||||
{
|
{
|
||||||
if (_diskProvider.FolderGetLastWrite(folder).AddDays(7) > DateTime.UtcNow)
|
if (_diskProvider.FolderGetLastWrite(folder).AddDays(7) > DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
logger.Debug("Folder hasn't expired yet, skipping: {0}", folder);
|
_logger.Debug("Folder hasn't expired yet, skipping: {0}", folder);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,14 +166,14 @@ namespace NzbDrone.Core.MediaFiles
|
|||||||
{
|
{
|
||||||
if (_diskProvider.FileGetLastWrite(file).AddDays(7) > DateTime.UtcNow)
|
if (_diskProvider.FileGetLastWrite(file).AddDays(7) > DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
logger.Debug("File hasn't expired yet, skipping: {0}", file);
|
_logger.Debug("File hasn't expired yet, skipping: {0}", file);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
_diskProvider.DeleteFile(file);
|
_diskProvider.DeleteFile(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Debug("Recycling Bin has been cleaned up.");
|
_logger.Debug("Recycling Bin has been cleaned up.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HandleAsync(SeriesDeletedEvent message)
|
public void HandleAsync(SeriesDeletedEvent message)
|
||||||
|
@ -13,7 +13,7 @@ namespace NzbDrone.Core.Parser
|
|||||||
{
|
{
|
||||||
public static class Parser
|
public static class Parser
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(Parser));
|
||||||
|
|
||||||
private static readonly Regex[] ReportTitleRegex = new[]
|
private static readonly Regex[] ReportTitleRegex = new[]
|
||||||
{
|
{
|
||||||
@ -665,7 +665,7 @@ namespace NzbDrone.Core.Parser
|
|||||||
|
|
||||||
if (hash.Success)
|
if (hash.Success)
|
||||||
{
|
{
|
||||||
var hashValue = hash.Value.Trim('[',']');
|
var hashValue = hash.Value.Trim('[', ']');
|
||||||
|
|
||||||
if (hashValue.Equals("1280x720"))
|
if (hashValue.Equals("1280x720"))
|
||||||
{
|
{
|
||||||
@ -674,7 +674,7 @@ namespace NzbDrone.Core.Parser
|
|||||||
|
|
||||||
return hashValue;
|
return hashValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
return String.Empty;
|
return String.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ namespace NzbDrone.Core.Rest
|
|||||||
{
|
{
|
||||||
public static class RestSharpExtensions
|
public static class RestSharpExtensions
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(RestSharpExtensions));
|
||||||
|
|
||||||
public static IRestResponse ValidateResponse(this IRestResponse response, IRestClient restClient)
|
public static IRestResponse ValidateResponse(this IRestResponse response, IRestClient restClient)
|
||||||
{
|
{
|
||||||
|
@ -23,7 +23,6 @@ namespace NzbDrone.Core.RootFolders
|
|||||||
|
|
||||||
public class RootFolderService : IRootFolderService
|
public class RootFolderService : IRootFolderService
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
|
||||||
private readonly IRootFolderRepository _rootFolderRepository;
|
private readonly IRootFolderRepository _rootFolderRepository;
|
||||||
private readonly IDiskProvider _diskProvider;
|
private readonly IDiskProvider _diskProvider;
|
||||||
private readonly ISeriesRepository _seriesRepository;
|
private readonly ISeriesRepository _seriesRepository;
|
||||||
@ -110,7 +109,7 @@ namespace NzbDrone.Core.RootFolders
|
|||||||
|
|
||||||
private List<UnmappedFolder> GetUnmappedFolders(string path)
|
private List<UnmappedFolder> GetUnmappedFolders(string path)
|
||||||
{
|
{
|
||||||
Logger.Debug("Generating list of unmapped folders");
|
_logger.Debug("Generating list of unmapped folders");
|
||||||
if (String.IsNullOrEmpty(path))
|
if (String.IsNullOrEmpty(path))
|
||||||
throw new ArgumentException("Invalid path provided", "path");
|
throw new ArgumentException("Invalid path provided", "path");
|
||||||
|
|
||||||
@ -119,7 +118,7 @@ namespace NzbDrone.Core.RootFolders
|
|||||||
|
|
||||||
if (!_diskProvider.FolderExists(path))
|
if (!_diskProvider.FolderExists(path))
|
||||||
{
|
{
|
||||||
Logger.Debug("Path supplied does not exist: {0}", path);
|
_logger.Debug("Path supplied does not exist: {0}", path);
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +134,7 @@ namespace NzbDrone.Core.RootFolders
|
|||||||
var setToRemove = SpecialFolders;
|
var setToRemove = SpecialFolders;
|
||||||
results.RemoveAll(x => setToRemove.Contains(new DirectoryInfo(x.Path.ToLowerInvariant()).Name));
|
results.RemoveAll(x => setToRemove.Contains(new DirectoryInfo(x.Path.ToLowerInvariant()).Name));
|
||||||
|
|
||||||
Logger.Debug("{0} unmapped folders detected.", results.Count);
|
_logger.Debug("{0} unmapped folders detected.", results.Count);
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,12 +14,10 @@ namespace NzbDrone.Host
|
|||||||
public static class Bootstrap
|
public static class Bootstrap
|
||||||
{
|
{
|
||||||
private static IContainer _container;
|
private static IContainer _container;
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(Bootstrap));
|
||||||
|
|
||||||
public static void Start(StartupContext startupContext, IUserAlert userAlert, Action<IContainer> startCallback = null)
|
public static void Start(StartupContext startupContext, IUserAlert userAlert, Action<IContainer> startCallback = null)
|
||||||
{
|
{
|
||||||
LogTargets.Register(startupContext, false, true);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
GlobalExceptionHandlers.Register();
|
GlobalExceptionHandlers.Register();
|
||||||
|
@ -9,7 +9,7 @@ namespace NzbDrone.Host
|
|||||||
{
|
{
|
||||||
public static class PlatformValidation
|
public static class PlatformValidation
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(PlatformValidation));
|
||||||
|
|
||||||
private const string DOWNLOAD_LINK = "http://www.microsoft.com/en-us/download/details.aspx?id=42643";
|
private const string DOWNLOAD_LINK = "http://www.microsoft.com/en-us/download/details.aspx?id=42643";
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ namespace NzbDrone.Integration.Test
|
|||||||
[TestFixtureSetUp]
|
[TestFixtureSetUp]
|
||||||
public void SmokeTestSetup()
|
public void SmokeTestSetup()
|
||||||
{
|
{
|
||||||
_runner = new NzbDroneRunner();
|
_runner = new NzbDroneRunner(LogManager.GetCurrentClassLogger());
|
||||||
_runner.KillAll();
|
_runner.KillAll();
|
||||||
|
|
||||||
_runner.Start();
|
_runner.Start();
|
||||||
|
@ -13,7 +13,7 @@ namespace NzbDrone.Mono
|
|||||||
{
|
{
|
||||||
public class DiskProvider : DiskProviderBase
|
public class DiskProvider : DiskProviderBase
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(DiskProvider));
|
||||||
|
|
||||||
public override long? GetAvailableSpace(string path)
|
public override long? GetAvailableSpace(string path)
|
||||||
{
|
{
|
||||||
|
@ -5,6 +5,7 @@ using System.Threading;
|
|||||||
using System.Xml;
|
using System.Xml;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
using System.Xml.XPath;
|
using System.Xml.XPath;
|
||||||
|
using NLog;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Processes;
|
using NzbDrone.Common.Processes;
|
||||||
@ -21,9 +22,9 @@ namespace NzbDrone.Test.Common
|
|||||||
public string AppData { get; private set; }
|
public string AppData { get; private set; }
|
||||||
public string ApiKey { get; private set; }
|
public string ApiKey { get; private set; }
|
||||||
|
|
||||||
public NzbDroneRunner(int port = 8989)
|
public NzbDroneRunner(Logger logger, int port = 8989)
|
||||||
{
|
{
|
||||||
_processProvider = new ProcessProvider();
|
_processProvider = new ProcessProvider(logger);
|
||||||
_restClient = new RestClient("http://localhost:8989/api");
|
_restClient = new RestClient("http://localhost:8989/api");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ namespace NzbDrone.Update
|
|||||||
private readonly IProcessProvider _processProvider;
|
private readonly IProcessProvider _processProvider;
|
||||||
private static IContainer _container;
|
private static IContainer _container;
|
||||||
|
|
||||||
private static readonly Logger logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(UpdateApp));
|
||||||
|
|
||||||
public UpdateApp(IInstallUpdateService installUpdateService, IProcessProvider processProvider)
|
public UpdateApp(IInstallUpdateService installUpdateService, IProcessProvider processProvider)
|
||||||
{
|
{
|
||||||
@ -31,7 +31,7 @@ namespace NzbDrone.Update
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var startupArgument = new StartupContext(args);
|
var startupArgument = new StartupContext(args);
|
||||||
LogTargets.Register(startupArgument, true, true);
|
NzbDroneLogger.Register(startupArgument, true, true);
|
||||||
|
|
||||||
Console.WriteLine("Starting NzbDrone Update Client");
|
Console.WriteLine("Starting NzbDrone Update Client");
|
||||||
|
|
||||||
@ -41,12 +41,12 @@ namespace NzbDrone.Update
|
|||||||
|
|
||||||
_container = UpdateContainerBuilder.Build(startupArgument);
|
_container = UpdateContainerBuilder.Build(startupArgument);
|
||||||
|
|
||||||
logger.Info("Updating NzbDrone to version {0}", BuildInfo.Version);
|
Logger.Info("Updating NzbDrone to version {0}", BuildInfo.Version);
|
||||||
_container.Resolve<UpdateApp>().Start(args);
|
_container.Resolve<UpdateApp>().Start(args);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
logger.FatalException("An error has occurred while applying update package.", e);
|
Logger.FatalException("An error has occurred while applying update package.", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,8 +54,8 @@ namespace NzbDrone.Update
|
|||||||
{
|
{
|
||||||
var startupContext = ParseArgs(args);
|
var startupContext = ParseArgs(args);
|
||||||
var targetFolder = GetInstallationDirectory(startupContext);
|
var targetFolder = GetInstallationDirectory(startupContext);
|
||||||
|
|
||||||
logger.Info("Starting update process. Target Path:{0}", targetFolder);
|
Logger.Info("Starting update process. Target Path:{0}", targetFolder);
|
||||||
_installUpdateService.Start(targetFolder, startupContext.ProcessId);
|
_installUpdateService.Start(targetFolder, startupContext.ProcessId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,18 +82,18 @@ namespace NzbDrone.Update
|
|||||||
startupContext.ExecutingApplication = args[2];
|
startupContext.ExecutingApplication = args[2];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
|
||||||
logger.Debug("Arguments:");
|
|
||||||
|
|
||||||
foreach (var arg in args)
|
|
||||||
{
|
{
|
||||||
logger.Debug(" {0}", arg);
|
Logger.Debug("Arguments:");
|
||||||
|
|
||||||
|
foreach (var arg in args)
|
||||||
|
{
|
||||||
|
Logger.Debug(" {0}", arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
var message = String.Format("Number of arguments are unexpected, expected: 3, found: {0}", args.Count());
|
||||||
|
|
||||||
|
throw new ArgumentOutOfRangeException("args", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
var message = String.Format("Number of arguments are unexpected, expected: 3, found: {0}", args.Count());
|
|
||||||
|
|
||||||
throw new ArgumentOutOfRangeException("args", message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ namespace NzbDrone.Update
|
|||||||
throw new ArgumentOutOfRangeException("arg", "Invalid process ID");
|
throw new ArgumentOutOfRangeException("arg", "Invalid process ID");
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Debug("NzbDrone process ID: {0}", id);
|
Logger.Debug("NzbDrone process ID: {0}", id);
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,18 +116,18 @@ namespace NzbDrone.Update
|
|||||||
{
|
{
|
||||||
if (startupContext.ExecutingApplication.IsNullOrWhiteSpace())
|
if (startupContext.ExecutingApplication.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
logger.Debug("Using process ID to find installation directory: {0}", startupContext.ProcessId);
|
Logger.Debug("Using process ID to find installation directory: {0}", startupContext.ProcessId);
|
||||||
var exeFileInfo = new FileInfo(_processProvider.GetProcessById(startupContext.ProcessId).StartPath);
|
var exeFileInfo = new FileInfo(_processProvider.GetProcessById(startupContext.ProcessId).StartPath);
|
||||||
logger.Debug("Executable location: {0}", exeFileInfo.FullName);
|
Logger.Debug("Executable location: {0}", exeFileInfo.FullName);
|
||||||
|
|
||||||
return exeFileInfo.DirectoryName;
|
return exeFileInfo.DirectoryName;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.Debug("Using executing application: {0}", startupContext.ExecutingApplication);
|
Logger.Debug("Using executing application: {0}", startupContext.ExecutingApplication);
|
||||||
var exeFileInfo = new FileInfo(startupContext.ExecutingApplication);
|
var exeFileInfo = new FileInfo(startupContext.ExecutingApplication);
|
||||||
logger.Debug("Executable location: {0}", exeFileInfo.FullName);
|
Logger.Debug("Executable location: {0}", exeFileInfo.FullName);
|
||||||
|
|
||||||
return exeFileInfo.DirectoryName;
|
return exeFileInfo.DirectoryName;
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ namespace NzbDrone.Windows
|
|||||||
{
|
{
|
||||||
public class DiskProvider : DiskProviderBase
|
public class DiskProvider : DiskProviderBase
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(DiskProvider));
|
||||||
|
|
||||||
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
@ -10,7 +10,7 @@ namespace NzbDrone
|
|||||||
{
|
{
|
||||||
public static class WindowsApp
|
public static class WindowsApp
|
||||||
{
|
{
|
||||||
private static readonly Logger Logger = NzbDroneLogger.GetLogger();
|
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(WindowsApp));
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
@ -18,7 +18,7 @@ namespace NzbDrone
|
|||||||
{
|
{
|
||||||
var startupArgs = new StartupContext(args);
|
var startupArgs = new StartupContext(args);
|
||||||
|
|
||||||
LogTargets.Register(startupArgs, false, true);
|
NzbDroneLogger.Register(startupArgs, false, true);
|
||||||
|
|
||||||
Bootstrap.Start(startupArgs, new MessageBoxUserAlert(), container =>
|
Bootstrap.Start(startupArgs, new MessageBoxUserAlert(), container =>
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user