mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
manage Microsoft logs by NLog (#4080)
* now Microsoft log (Microsoft.*) are correctly supported by Nlog
* Microsoft log are now not logged under level info if tracing is not enabled.
* remove unused prefix NLog.
* Revert "Microsoft log are now not logged under level info if tracing is not enabled."
This reverts commit 00e94204e0
.
* microsoft logs in console are preserved.
Only service log is clean of microsoft logs when tracing is not enabled.
* change loglevel min to debug
* Microsoft logs can be reactivate when Enhanced logging is set to true.
* adjust min & max level of serviceMicrosoftRule
* clean Microsoft logs in all NLog targets
This commit is contained in:
@@ -20,8 +20,8 @@ namespace Jackett.Common.Utils
|
|||||||
ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("simpledatetime", typeof(SimpleDateTimeRenderer));
|
ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("simpledatetime", typeof(SimpleDateTimeRenderer));
|
||||||
|
|
||||||
var logConfig = new LoggingConfiguration();
|
var logConfig = new LoggingConfiguration();
|
||||||
|
|
||||||
var logFile = new FileTarget();
|
var logFile = new FileTarget();
|
||||||
logConfig.AddTarget("file", logFile);
|
|
||||||
logFile.Layout = "${longdate} ${level} ${message} ${exception:format=ToString}";
|
logFile.Layout = "${longdate} ${level} ${message} ${exception:format=ToString}";
|
||||||
logFile.FileName = Path.Combine(settings.DataFolder, logFileName);
|
logFile.FileName = Path.Combine(settings.DataFolder, logFileName);
|
||||||
logFile.ArchiveFileName = Path.Combine(settings.DataFolder, logFileName + ".{#####}.txt");
|
logFile.ArchiveFileName = Path.Combine(settings.DataFolder, logFileName + ".{#####}.txt");
|
||||||
@@ -29,23 +29,53 @@ namespace Jackett.Common.Utils
|
|||||||
logFile.MaxArchiveFiles = 5;
|
logFile.MaxArchiveFiles = 5;
|
||||||
logFile.KeepFileOpen = false;
|
logFile.KeepFileOpen = false;
|
||||||
logFile.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence;
|
logFile.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence;
|
||||||
|
logConfig.AddTarget("file", logFile);
|
||||||
|
|
||||||
|
var microsoftRule = new LoggingRule();
|
||||||
|
microsoftRule.LoggerNamePattern = "Microsoft.*";
|
||||||
|
microsoftRule.SetLoggingLevels(LogLevel.Warn, LogLevel.Fatal);
|
||||||
|
microsoftRule.Final = true;
|
||||||
|
microsoftRule.Targets.Add(logFile);
|
||||||
|
|
||||||
|
var microsoftDebugRule = new LoggingRule();
|
||||||
|
microsoftDebugRule.LoggerNamePattern = "Microsoft.*";
|
||||||
|
microsoftDebugRule.SetLoggingLevels(LogLevel.Debug, LogLevel.Info);
|
||||||
|
microsoftDebugRule.Final = true;
|
||||||
|
if (settings.TracingEnabled)
|
||||||
|
{
|
||||||
|
microsoftDebugRule.Targets.Add(logFile);
|
||||||
|
}
|
||||||
|
logConfig.LoggingRules.Add(microsoftDebugRule);
|
||||||
|
|
||||||
var logFileRule = new LoggingRule("*", logLevel, logFile);
|
var logFileRule = new LoggingRule("*", logLevel, logFile);
|
||||||
logConfig.LoggingRules.Add(logFileRule);
|
logConfig.LoggingRules.Add(logFileRule);
|
||||||
|
|
||||||
if (!fileOnly)
|
if (!fileOnly)
|
||||||
{
|
{
|
||||||
var logConsole = new ColoredConsoleTarget();
|
var logConsole = new ColoredConsoleTarget();
|
||||||
|
logConsole.Layout = "${simpledatetime} ${level} ${message} ${exception:format=ToString}";
|
||||||
logConfig.AddTarget("console", logConsole);
|
logConfig.AddTarget("console", logConsole);
|
||||||
|
|
||||||
logConsole.Layout = "${simpledatetime} ${level} ${message} ${exception:format=ToString}";
|
|
||||||
var logConsoleRule = new LoggingRule("*", logLevel, logConsole);
|
var logConsoleRule = new LoggingRule("*", logLevel, logConsole);
|
||||||
logConfig.LoggingRules.Add(logConsoleRule);
|
logConfig.LoggingRules.Add(logConsoleRule);
|
||||||
|
|
||||||
var logService = new LogCacheService();
|
var logService = new LogCacheService();
|
||||||
logConfig.AddTarget("service", logService);
|
logConfig.AddTarget("service", logService);
|
||||||
|
|
||||||
var serviceRule = new LoggingRule("*", logLevel, logService);
|
var serviceRule = new LoggingRule("*", logLevel, logService);
|
||||||
logConfig.LoggingRules.Add(serviceRule);
|
logConfig.LoggingRules.Add(serviceRule);
|
||||||
|
|
||||||
|
microsoftRule.Targets.Add(logConsole);
|
||||||
|
microsoftRule.Targets.Add(logService);
|
||||||
|
|
||||||
|
if (settings.TracingEnabled)
|
||||||
|
{
|
||||||
|
microsoftDebugRule.Targets.Add(logConsole);
|
||||||
|
microsoftDebugRule.Targets.Add(logService);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
logConfig.LoggingRules.Add(microsoftRule);
|
||||||
|
|
||||||
return logConfig;
|
return logConfig;
|
||||||
}
|
}
|
||||||
|
@@ -140,6 +140,32 @@ namespace Jackett.Server
|
|||||||
{
|
{
|
||||||
foreach (var rule in LogManager.Configuration.LoggingRules)
|
foreach (var rule in LogManager.Configuration.LoggingRules)
|
||||||
{
|
{
|
||||||
|
if (rule.LoggerNamePattern == "Microsoft.*")
|
||||||
|
{
|
||||||
|
if (!rule.Levels.Contains(LogLevel.Debug))
|
||||||
|
{
|
||||||
|
//don't change the first microsoftRule
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var targets = LogManager.Configuration.ConfiguredNamedTargets;
|
||||||
|
if (level == LogLevel.Debug)
|
||||||
|
{
|
||||||
|
foreach (var target in targets)
|
||||||
|
{
|
||||||
|
rule.Targets.Add(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var target in targets)
|
||||||
|
{
|
||||||
|
rule.Targets.Remove(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (level == LogLevel.Debug)
|
if (level == LogLevel.Debug)
|
||||||
{
|
{
|
||||||
if (!rule.Levels.Contains(LogLevel.Debug))
|
if (!rule.Levels.Contains(LogLevel.Debug))
|
||||||
|
@@ -7,6 +7,7 @@ using Jackett.Common.Utils;
|
|||||||
using Microsoft.AspNetCore;
|
using Microsoft.AspNetCore;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NLog.Web;
|
using NLog.Web;
|
||||||
using System;
|
using System;
|
||||||
@@ -184,6 +185,11 @@ namespace Jackett.Server
|
|||||||
.PreferHostingUrls(true)
|
.PreferHostingUrls(true)
|
||||||
.UseConfiguration(Configuration)
|
.UseConfiguration(Configuration)
|
||||||
.UseStartup<Startup>()
|
.UseStartup<Startup>()
|
||||||
|
.ConfigureLogging(logging =>
|
||||||
|
{
|
||||||
|
logging.ClearProviders();
|
||||||
|
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
|
||||||
|
})
|
||||||
.UseNLog();
|
.UseNLog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user