mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Setup logging before DI
This commit is contained in:
@@ -96,7 +96,7 @@ namespace Jackett.Server.Controllers
|
|||||||
serverConfig.RuntimeSettings.BasePath = serverService.BasePath();
|
serverConfig.RuntimeSettings.BasePath = serverService.BasePath();
|
||||||
configService.SaveConfig(serverConfig);
|
configService.SaveConfig(serverConfig);
|
||||||
|
|
||||||
Helper.SetLogLevel(logging ? LogLevel.Debug : LogLevel.Info);
|
Initialisation.SetLogLevel(logging ? LogLevel.Debug : LogLevel.Info);
|
||||||
serverConfig.RuntimeSettings.TracingEnabled = logging;
|
serverConfig.RuntimeSettings.TracingEnabled = logging;
|
||||||
|
|
||||||
if (omdbApiKey != serverConfig.OmdbApiKey)
|
if (omdbApiKey != serverConfig.OmdbApiKey)
|
||||||
|
@@ -238,64 +238,13 @@ namespace Jackett.Server
|
|||||||
|
|
||||||
public static void SetupLogging(RuntimeSettings settings, ContainerBuilder builder)
|
public static void SetupLogging(RuntimeSettings settings, ContainerBuilder builder)
|
||||||
{
|
{
|
||||||
var logFileName = settings.CustomLogFileName ?? "log.txt";
|
Logger logger = LogManager.GetCurrentClassLogger();
|
||||||
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);
|
|
||||||
|
|
||||||
LogManager.Configuration = logConfig;
|
|
||||||
if (builder != null)
|
if (builder != null)
|
||||||
{
|
{
|
||||||
builder.RegisterInstance(LogManager.GetCurrentClassLogger()).SingleInstance();
|
builder.RegisterInstance(logger).SingleInstance();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
71
src/Jackett.Server/Initialisation.cs
Normal file
71
src/Jackett.Server/Initialisation.cs
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
using Jackett.Common;
|
||||||
|
using Jackett.Common.Models.Config;
|
||||||
|
using Jackett.Common.Services;
|
||||||
|
using NLog;
|
||||||
|
using NLog.Config;
|
||||||
|
using NLog.Targets;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Jackett.Server
|
||||||
|
{
|
||||||
|
public static class Initialisation
|
||||||
|
{
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -34,6 +34,7 @@
|
|||||||
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.0" />
|
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="2.1.0" />
|
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="2.1.0" />
|
||||||
|
<PackageReference Include="NLog" Version="4.5.6" />
|
||||||
<PackageReference Include="System.ServiceProcess.ServiceController" Version="4.5.0" />
|
<PackageReference Include="System.ServiceProcess.ServiceController" Version="4.5.0" />
|
||||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.0" />
|
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@@ -58,6 +58,10 @@ namespace Jackett.Server
|
|||||||
|
|
||||||
Helper.ConsoleOptions = consoleOptions;
|
Helper.ConsoleOptions = consoleOptions;
|
||||||
|
|
||||||
|
LogManager.Configuration = Initialisation.SetupLogging(Settings);
|
||||||
|
Logger logger = LogManager.GetCurrentClassLogger();
|
||||||
|
logger.Info("Starting Jackett v" + EnvironmentUtil.JackettVersion);
|
||||||
|
|
||||||
var builder = new ConfigurationBuilder();
|
var builder = new ConfigurationBuilder();
|
||||||
builder.AddInMemoryCollection(runtimeDictionary);
|
builder.AddInMemoryCollection(runtimeDictionary);
|
||||||
|
|
||||||
@@ -74,7 +78,6 @@ namespace Jackett.Server
|
|||||||
containerBuilder.RegisterType<ProtectionService>().As<IProtectionService>();
|
containerBuilder.RegisterType<ProtectionService>().As<IProtectionService>();
|
||||||
var tempContainer = containerBuilder.Build();
|
var tempContainer = containerBuilder.Build();
|
||||||
|
|
||||||
Logger logger = tempContainer.Resolve<Logger>();
|
|
||||||
ServerConfig serverConfig = tempContainer.Resolve<ServerConfig>();
|
ServerConfig serverConfig = tempContainer.Resolve<ServerConfig>();
|
||||||
IConfigurationService configurationService = tempContainer.Resolve<IConfigurationService>();
|
IConfigurationService configurationService = tempContainer.Resolve<IConfigurationService>();
|
||||||
IServerService serverService = tempContainer.Resolve<IServerService>();
|
IServerService serverService = tempContainer.Resolve<IServerService>();
|
||||||
|
Reference in New Issue
Block a user