From 0c839d1e11ad329e53d09e3fcab7e474b5526a82 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 25 Aug 2014 22:48:27 -0700 Subject: [PATCH] New: Trace/Debug logging will keep the last 50 files instead of only the last 5 --- ...tLoggingLevel.cs => ReconfigureLogging.cs} | 35 +++++++++++++------ src/NzbDrone.Core/NzbDrone.Core.csproj | 2 +- 2 files changed, 25 insertions(+), 12 deletions(-) rename src/NzbDrone.Core/Instrumentation/{SetLoggingLevel.cs => ReconfigureLogging.cs} (64%) diff --git a/src/NzbDrone.Core/Instrumentation/SetLoggingLevel.cs b/src/NzbDrone.Core/Instrumentation/ReconfigureLogging.cs similarity index 64% rename from src/NzbDrone.Core/Instrumentation/SetLoggingLevel.cs rename to src/NzbDrone.Core/Instrumentation/ReconfigureLogging.cs index e4ca64919..c98ae80e8 100644 --- a/src/NzbDrone.Core/Instrumentation/SetLoggingLevel.cs +++ b/src/NzbDrone.Core/Instrumentation/ReconfigureLogging.cs @@ -10,16 +10,11 @@ using NzbDrone.Core.Messaging.Events; namespace NzbDrone.Core.Instrumentation { - public interface ISetLoggingLevel - { - void Reconfigure(); - } - - public class SetLoggingLevel : ISetLoggingLevel, IHandleAsync, IHandleAsync + public class ReconfigureLogging : IHandleAsync, IHandleAsync { private readonly IConfigFileProvider _configFileProvider; - public SetLoggingLevel(IConfigFileProvider configFileProvider) + public ReconfigureLogging(IConfigFileProvider configFileProvider) { _configFileProvider = configFileProvider; } @@ -29,10 +24,11 @@ namespace NzbDrone.Core.Instrumentation var minimumLogLevel = LogLevel.FromString(_configFileProvider.LogLevel); var rules = LogManager.Configuration.LoggingRules; - var rollingFileLogger = rules.Single(s => s.Targets.Any(t => t is NzbDroneFileTarget)); - rollingFileLogger.EnableLoggingForLevel(LogLevel.Trace); - - SetMinimumLogLevel(rollingFileLogger, minimumLogLevel); + var rollingFileLoggerRule = rules.Single(s => s.Targets.Any(t => t is NzbDroneFileTarget)); + rollingFileLoggerRule.EnableLoggingForLevel(LogLevel.Trace); + + SetMinimumLogLevel(rollingFileLoggerRule, minimumLogLevel); + SetMaxArchiveFiles(rollingFileLoggerRule, minimumLogLevel); LogManager.ReconfigExistingLoggers(); } @@ -53,6 +49,23 @@ namespace NzbDrone.Core.Instrumentation } } + private void SetMaxArchiveFiles(LoggingRule rule, LogLevel minimumLogLevel) + { + var target = rule.Targets.Single(t => t is NzbDroneFileTarget) as NzbDroneFileTarget; + + if (target == null) return; + + if (minimumLogLevel >= LogLevel.Info) + { + target.MaxArchiveFiles = 5; + } + + else + { + target.MaxArchiveFiles = 50; + } + } + private List GetLogLevels() { return new List diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 09009c422..cf2ec257e 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -436,7 +436,7 @@ - +