diff --git a/src/Jackett.Server/Helper.cs b/src/Jackett.Server/Helper.cs index dbe1ae974..a81c1d295 100644 --- a/src/Jackett.Server/Helper.cs +++ b/src/Jackett.Server/Helper.cs @@ -1,17 +1,11 @@ using Autofac; using AutoMapper; -using Jackett.Common; using Jackett.Common.Models; using Jackett.Common.Models.Config; -using Jackett.Common.Services; using Jackett.Common.Services.Interfaces; using Jackett.Common.Utils.Clients; using Microsoft.AspNetCore.Hosting; using NLog; -using NLog.Config; -using NLog.Targets; -using System; -using System.IO; using System.Linq; using System.Text; @@ -22,8 +16,6 @@ namespace Jackett.Server public static IContainer ApplicationContainer { get; set; } public static IApplicationLifetime applicationLifetime; private static bool _automapperInitialised = false; - public static ConsoleOptions ConsoleOptions { get; set; } - public static void Initialize() { @@ -35,8 +27,6 @@ namespace Jackett.Server _automapperInitialised = true; } - ProcessSettings(); - //Load the indexers ServerService.Initalize(); @@ -44,48 +34,6 @@ namespace Jackett.Server ServerService.Start(); } - private static void ProcessSettings() - { - RuntimeSettings runtimeSettings = ServerConfiguration.RuntimeSettings; - - if (runtimeSettings.ClientOverride != "httpclient" && runtimeSettings.ClientOverride != "httpclient2") - { - Logger.Error($"Client override ({runtimeSettings.ClientOverride}) has been deprecated, please remove it from your start arguments"); - Environment.Exit(1); - } - - if (runtimeSettings.DoSSLFix != null) - { - Logger.Error("SSLFix has been deprecated, please remove it from your start arguments"); - Environment.Exit(1); - } - - if (runtimeSettings.LogRequests) - { - Logger.Info("Logging enabled."); - } - - if (runtimeSettings.TracingEnabled) - { - Logger.Info("Tracing enabled."); - } - - if (runtimeSettings.IgnoreSslErrors == true) - { - Logger.Info("Jackett will ignore SSL certificate errors."); - } - - if (!string.IsNullOrWhiteSpace(runtimeSettings.CustomDataFolder)) - { - Logger.Info("Jackett Data will be stored in: " + runtimeSettings.CustomDataFolder); - } - - if (runtimeSettings.ProxyConnection != null) - { - Logger.Info("Proxy enabled. " + runtimeSettings.ProxyConnection); - } - } - public static void RestartWebHost() { Logger.Info("Restart of the web application host (not process) initiated"); @@ -185,6 +133,5 @@ namespace Jackett.Server builder.RegisterInstance(logger).SingleInstance(); } } - } } diff --git a/src/Jackett.Server/Initialisation.cs b/src/Jackett.Server/Initialisation.cs index 46e3bb94f..e285e8af0 100644 --- a/src/Jackett.Server/Initialisation.cs +++ b/src/Jackett.Server/Initialisation.cs @@ -14,62 +14,45 @@ namespace Jackett.Server { public static class Initialisation { - public static LoggingConfiguration SetupLogging(RuntimeSettings settings) + + public static void ProcessSettings(RuntimeSettings runtimeSettings, Logger logger) { - var logFileName = settings.CustomLogFileName ?? "log.txt"; - var logLevel = settings.TracingEnabled ? NLog.LogLevel.Debug : NLog.LogLevel.Info; - // Add custom date time format renderer as the default is too long - ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("simpledatetime", typeof(SimpleDateTimeRenderer)); - - var logConfig = new LoggingConfiguration(); - var logFile = new FileTarget(); - logConfig.AddTarget("file", logFile); - logFile.Layout = "${longdate} ${level} ${message} ${exception:format=ToString}"; - logFile.FileName = Path.Combine(settings.DataFolder, logFileName); - logFile.ArchiveFileName = "log.{#####}.txt"; - logFile.ArchiveAboveSize = 500000; - logFile.MaxArchiveFiles = 5; - logFile.KeepFileOpen = false; - logFile.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence; - var logFileRule = new LoggingRule("*", logLevel, logFile); - logConfig.LoggingRules.Add(logFileRule); - - var logConsole = new ColoredConsoleTarget(); - logConfig.AddTarget("console", logConsole); - - logConsole.Layout = "${simpledatetime} ${level} ${message} ${exception:format=ToString}"; - var logConsoleRule = new LoggingRule("*", logLevel, logConsole); - logConfig.LoggingRules.Add(logConsoleRule); - - var logService = new LogCacheService(); - logConfig.AddTarget("service", logService); - var serviceRule = new LoggingRule("*", logLevel, logService); - logConfig.LoggingRules.Add(serviceRule); - - return logConfig; - } - - public static void SetLogLevel(LogLevel level) - { - foreach (var rule in LogManager.Configuration.LoggingRules) + if (runtimeSettings.ClientOverride != "httpclient" && runtimeSettings.ClientOverride != "httpclient2") { - if (level == LogLevel.Debug) - { - if (!rule.Levels.Contains(LogLevel.Debug)) - { - rule.EnableLoggingForLevel(LogLevel.Debug); - } - } - else - { - if (rule.Levels.Contains(LogLevel.Debug)) - { - rule.DisableLoggingForLevel(LogLevel.Debug); - } - } + logger.Error($"Client override ({runtimeSettings.ClientOverride}) has been deprecated, please remove it from your start arguments"); + Environment.Exit(1); } - LogManager.ReconfigExistingLoggers(); + if (runtimeSettings.DoSSLFix != null) + { + logger.Error("SSLFix has been deprecated, please remove it from your start arguments"); + Environment.Exit(1); + } + + if (runtimeSettings.LogRequests) + { + logger.Info("Logging enabled."); + } + + if (runtimeSettings.TracingEnabled) + { + logger.Info("Tracing enabled."); + } + + if (runtimeSettings.IgnoreSslErrors == true) + { + logger.Info("Jackett will ignore SSL certificate errors."); + } + + if (!string.IsNullOrWhiteSpace(runtimeSettings.CustomDataFolder)) + { + logger.Info("Jackett Data will be stored in: " + runtimeSettings.CustomDataFolder); + } + + if (runtimeSettings.ProxyConnection != null) + { + logger.Info("Proxy enabled. " + runtimeSettings.ProxyConnection); + } } public static void ProcessWindowsSpecificArgs(ConsoleOptions consoleOptions, IProcessService processService, ServerConfig serverConfig, Logger logger) @@ -143,5 +126,63 @@ namespace Jackett.Server { processService.StartProcessAndLog("netsh.exe", args); } + + public static LoggingConfiguration SetupLogging(RuntimeSettings settings) + { + var logFileName = settings.CustomLogFileName ?? "log.txt"; + var logLevel = settings.TracingEnabled ? NLog.LogLevel.Debug : NLog.LogLevel.Info; + // Add custom date time format renderer as the default is too long + ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("simpledatetime", typeof(SimpleDateTimeRenderer)); + + var logConfig = new LoggingConfiguration(); + var logFile = new FileTarget(); + logConfig.AddTarget("file", logFile); + logFile.Layout = "${longdate} ${level} ${message} ${exception:format=ToString}"; + logFile.FileName = Path.Combine(settings.DataFolder, logFileName); + logFile.ArchiveFileName = "log.{#####}.txt"; + logFile.ArchiveAboveSize = 500000; + logFile.MaxArchiveFiles = 5; + logFile.KeepFileOpen = false; + logFile.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence; + var logFileRule = new LoggingRule("*", logLevel, logFile); + logConfig.LoggingRules.Add(logFileRule); + + var logConsole = new ColoredConsoleTarget(); + logConfig.AddTarget("console", logConsole); + + logConsole.Layout = "${simpledatetime} ${level} ${message} ${exception:format=ToString}"; + var logConsoleRule = new LoggingRule("*", logLevel, logConsole); + logConfig.LoggingRules.Add(logConsoleRule); + + var logService = new LogCacheService(); + logConfig.AddTarget("service", logService); + var serviceRule = new LoggingRule("*", logLevel, logService); + logConfig.LoggingRules.Add(serviceRule); + + return logConfig; + } + + public static void SetLogLevel(LogLevel level) + { + foreach (var rule in LogManager.Configuration.LoggingRules) + { + if (level == LogLevel.Debug) + { + if (!rule.Levels.Contains(LogLevel.Debug)) + { + rule.EnableLoggingForLevel(LogLevel.Debug); + } + } + else + { + if (rule.Levels.Contains(LogLevel.Debug)) + { + rule.DisableLoggingForLevel(LogLevel.Debug); + } + } + } + + LogManager.ReconfigExistingLoggers(); + } } } diff --git a/src/Jackett.Server/Program.cs b/src/Jackett.Server/Program.cs index 0a524b691..4d9299de4 100644 --- a/src/Jackett.Server/Program.cs +++ b/src/Jackett.Server/Program.cs @@ -55,8 +55,6 @@ namespace Jackett.Server runtimeDictionary = GetValues(Settings); }); - Helper.ConsoleOptions = consoleOptions; - LogManager.Configuration = Initialisation.SetupLogging(Settings); Logger logger = LogManager.GetCurrentClassLogger(); logger.Info("Starting Jackett v" + EnvironmentUtil.JackettVersion); @@ -75,6 +73,8 @@ namespace Jackett.Server } } + Initialisation.ProcessSettings(Settings, logger); + ISerializeService serializeService = new SerializeService(); IProcessService processService = new ProcessService(logger); IConfigurationService configurationService = new ConfigurationService(serializeService, processService, logger, Settings);