core: restore stacktraces for UI 'view logs'. resolves #14585 (#14619)

This commit is contained in:
ilike2burnthing 2023-08-10 23:14:37 +01:00 committed by GitHub
parent 8b30469255
commit 073d0e27a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 7 deletions

View File

@ -9,7 +9,7 @@ using NLog.Targets;
namespace Jackett.Common.Services namespace Jackett.Common.Services
{ {
[Target("LogService")] [Target("LogService")]
public class LogCacheService : TargetWithLayout, ILogCacheService public sealed class LogCacheService : TargetWithLayout, ILogCacheService
{ {
private static List<CachedLog> _Logs = new List<CachedLog>(); private static List<CachedLog> _Logs = new List<CachedLog>();
@ -24,16 +24,16 @@ namespace Jackett.Common.Services
} }
} }
protected override void Write(LogEventInfo logEvent) => AddLog(logEvent); protected override void Write(LogEventInfo logEvent) => AddLog(logEvent, Layout.Render(logEvent));
private static void AddLog(LogEventInfo logEvent) private static void AddLog(LogEventInfo logEvent, string logMessage)
{ {
lock (_Logs) lock (_Logs)
{ {
_Logs.Insert(0, new CachedLog _Logs.Insert(0, new CachedLog
{ {
Level = logEvent.Level.Name, Level = logEvent.Level.Name,
Message = CleanseLogMessage.Cleanse(logEvent.FormattedMessage), Message = CleanseLogMessage.Cleanse(logMessage),
When = logEvent.TimeStamp When = logEvent.TimeStamp
}); });

View File

@ -22,7 +22,7 @@ namespace Jackett.Common.Utils
var logFile = new CleanseFileTarget var logFile = new CleanseFileTarget
{ {
Layout = "${longdate} ${level} ${message} ${onexception:inner=${newline}${newline}[v${assembly-version}] ${exception:format=ToString}${newline}}", Layout = "${longdate} ${level} ${message}${onexception:inner=${newline}${newline}[v${assembly-version}] ${exception:format=ToString}${newline}}",
FileName = Path.Combine(settings.DataFolder, logFileName), FileName = Path.Combine(settings.DataFolder, logFileName),
ArchiveFileName = Path.Combine(settings.DataFolder, logFileName + ".{#####}.txt"), ArchiveFileName = Path.Combine(settings.DataFolder, logFileName + ".{#####}.txt"),
ArchiveAboveSize = 2097152, // 2 MB ArchiveAboveSize = 2097152, // 2 MB
@ -59,14 +59,17 @@ namespace Jackett.Common.Utils
{ {
var logConsole = new ColoredConsoleTarget var logConsole = new ColoredConsoleTarget
{ {
Layout = "${date:format=MM-dd HH\\:mm\\:ss} ${level} ${message} ${onexception:inner=${newline}${newline}[v${assembly-version}] ${exception:format=ToString}${newline}}" Layout = "${date:format=MM-dd HH\\:mm\\:ss} ${level} ${message}${onexception:inner=${newline}${newline}[v${assembly-version}] ${exception:format=ToString}${newline}}"
}; };
logConfig.AddTarget("console", logConsole); logConfig.AddTarget("console", logConsole);
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
{
Layout = "${message}${onexception:inner=${newline}${newline}[v${assembly-version}] ${exception:format=ToString}${newline}}"
};
logConfig.AddTarget("service", logService); logConfig.AddTarget("service", logService);
var serviceRule = new LoggingRule("*", logLevel, logService); var serviceRule = new LoggingRule("*", logLevel, logService);