1
0
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:
Keivan Beigi 2014-12-16 23:12:26 -08:00
parent b7b4c568be
commit 0a341199a8
33 changed files with 281 additions and 296 deletions

View File

@ -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
{ {

View File

@ -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
{ {

View File

@ -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

View File

@ -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.

View File

@ -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
{ {

View File

@ -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>
{ {

View File

@ -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)
{ {

View File

@ -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();

View File

@ -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);

View File

@ -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));

View File

@ -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);
}
}
}

View File

@ -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);
}
} }
} }

View File

@ -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" />

View File

@ -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;
} }

View File

@ -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()
{ {

View File

@ -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);
} }
} }

View File

@ -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;

View File

@ -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)

View File

@ -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]

View File

@ -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);
} }
} }
} }

View File

@ -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);

View File

@ -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)

View File

@ -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;
} }
} }

View File

@ -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)
{ {

View File

@ -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;
} }

View File

@ -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();

View File

@ -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";

View File

@ -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();

View File

@ -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)
{ {

View File

@ -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");
} }

View File

@ -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;
} }

View File

@ -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)]

View File

@ -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 =>
{ {