mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Use NLog Exception Handler, and , NLog Debug Message Printer, and change layout
This commit is contained in:
parent
8fe285bbec
commit
b955fde6e5
4 changed files with 26 additions and 27 deletions
|
|
@ -184,6 +184,10 @@ namespace Flow.Launcher.Core.Plugin
|
||||||
// null will be fine since the results will only be added into queue if the token hasn't been cancelled
|
// null will be fine since the results will only be added into queue if the token hasn't been cancelled
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Log.Exception("PluginManager", "Exception", e);
|
||||||
|
}
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,9 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Ben.Demystifier" Version="0.4.1" />
|
<PackageReference Include="Ben.Demystifier" Version="0.4.1" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="16.10.56" />
|
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="16.10.56" />
|
||||||
<PackageReference Include="NLog.Schema" Version="4.7.0-rc1" />
|
<PackageReference Include="NLog" Version="4.7.10" />
|
||||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.0" />
|
<PackageReference Include="NLog.Schema" Version="4.7.10" />
|
||||||
|
<PackageReference Include="NLog.Web.AspNetCore" Version="4.12.0" />
|
||||||
<PackageReference Include="System.Drawing.Common" Version="4.7.0" />
|
<PackageReference Include="System.Drawing.Common" Version="4.7.0" />
|
||||||
<PackageReference Include="ToolGood.Words.Pinyin" Version="3.0.1.4" />
|
<PackageReference Include="ToolGood.Words.Pinyin" Version="3.0.1.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,10 @@ using NLog.Config;
|
||||||
using NLog.Targets;
|
using NLog.Targets;
|
||||||
using Flow.Launcher.Infrastructure.UserSettings;
|
using Flow.Launcher.Infrastructure.UserSettings;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
|
using NLog.Fluent;
|
||||||
using NLog.Targets.Wrappers;
|
using NLog.Targets.Wrappers;
|
||||||
using System.Runtime.ExceptionServices;
|
using System.Runtime.ExceptionServices;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace Flow.Launcher.Infrastructure.Logger
|
namespace Flow.Launcher.Infrastructure.Logger
|
||||||
{
|
{
|
||||||
|
|
@ -26,29 +28,33 @@ namespace Flow.Launcher.Infrastructure.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
var configuration = new LoggingConfiguration();
|
var configuration = new LoggingConfiguration();
|
||||||
|
|
||||||
|
const string layout = @"${logger}->${time}|${level}|${message}|${onexception:inner=${logger}->${date:format=HH\:mm\:ss}|${level}|${message}|${newline}${exception:format=toString}${newline}";
|
||||||
|
|
||||||
var fileTarget = new FileTarget
|
var fileTarget = new FileTarget
|
||||||
{
|
{
|
||||||
FileName = CurrentLogDirectory.Replace(@"\", "/") + "/${shortdate}.txt"
|
FileName = CurrentLogDirectory.Replace(@"\", "/") + "/${shortdate}.txt",
|
||||||
|
Layout = layout
|
||||||
};
|
};
|
||||||
|
|
||||||
var fileTargetASyncWrapper = new AsyncTargetWrapper(fileTarget);
|
var fileTargetASyncWrapper = new AsyncTargetWrapper(fileTarget);
|
||||||
|
|
||||||
var debugTarget = new DebuggerTarget
|
var debugTarget = new OutputDebugStringTarget
|
||||||
{
|
{
|
||||||
Layout = "${level:uppercase=true}|${message}"
|
Layout = layout
|
||||||
};
|
};
|
||||||
|
|
||||||
configuration.AddTarget("file", fileTargetASyncWrapper);
|
configuration.AddTarget("file", fileTargetASyncWrapper);
|
||||||
configuration.AddTarget("console", debugTarget);
|
configuration.AddTarget("debug", debugTarget);
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
var fileRule = new LoggingRule("*", LogLevel.Debug, fileTargetASyncWrapper);
|
var fileRule = new LoggingRule("*", LogLevel.Debug, fileTargetASyncWrapper);
|
||||||
var debugRule = new LoggingRule("*", LogLevel.Debug, debugTarget);
|
var debugRule = new LoggingRule("*", LogLevel.Debug, debugTarget);
|
||||||
|
configuration.LoggingRules.Add(debugRule);
|
||||||
#else
|
#else
|
||||||
var rule = new LoggingRule("*", LogLevel.Info, fileTargetASyncWrapper);
|
var fileRule = new LoggingRule("*", LogLevel.Info, fileTargetASyncWrapper);
|
||||||
var debugRule = new LoggingRule("*", LogLevel.Info, consoleTarget);
|
|
||||||
#endif
|
#endif
|
||||||
configuration.LoggingRules.Add(fileRule);
|
configuration.LoggingRules.Add(fileRule);
|
||||||
configuration.LoggingRules.Add(debugRule);
|
|
||||||
LogManager.Configuration = configuration;
|
LogManager.Configuration = configuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -105,22 +111,9 @@ namespace Flow.Launcher.Infrastructure.Logger
|
||||||
{
|
{
|
||||||
var logger = LogManager.GetLogger(classAndMethod);
|
var logger = LogManager.GetLogger(classAndMethod);
|
||||||
|
|
||||||
|
var messageBuilder = new StringBuilder();
|
||||||
|
|
||||||
logger.Error("-------------------------- Begin exception --------------------------");
|
logger.Error(e, message);
|
||||||
logger.Error(message);
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
logger.Error($"Exception full name:\n <{e.GetType().FullName}>");
|
|
||||||
logger.Error($"Exception message:\n <{e.Message}>");
|
|
||||||
logger.Error($"Exception stack trace:\n <{e.StackTrace}>");
|
|
||||||
logger.Error($"Exception source:\n <{e.Source}>");
|
|
||||||
logger.Error($"Exception target site:\n <{e.TargetSite}>");
|
|
||||||
logger.Error($"Exception HResult:\n <{e.HResult}>");
|
|
||||||
e = e.InnerException;
|
|
||||||
} while (e != null);
|
|
||||||
|
|
||||||
logger.Error("-------------------------- End exception --------------------------");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void LogInternal(string message, LogLevel level)
|
private static void LogInternal(string message, LogLevel level)
|
||||||
|
|
@ -141,7 +134,6 @@ namespace Flow.Launcher.Infrastructure.Logger
|
||||||
|
|
||||||
/// <param name="message">example: "|prefix|unprefixed" </param>
|
/// <param name="message">example: "|prefix|unprefixed" </param>
|
||||||
/// <param name="e">Exception</param>
|
/// <param name="e">Exception</param>
|
||||||
[MethodImpl(MethodImplOptions.Synchronized)]
|
|
||||||
public static void Exception(string message, System.Exception e)
|
public static void Exception(string message, System.Exception e)
|
||||||
{
|
{
|
||||||
e = e.Demystify();
|
e = e.Demystify();
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ using System.Windows.Threading;
|
||||||
using NLog;
|
using NLog;
|
||||||
using Flow.Launcher.Infrastructure;
|
using Flow.Launcher.Infrastructure;
|
||||||
using Flow.Launcher.Infrastructure.Exception;
|
using Flow.Launcher.Infrastructure.Exception;
|
||||||
|
using NLog.Fluent;
|
||||||
|
using Log = Flow.Launcher.Infrastructure.Logger.Log;
|
||||||
|
|
||||||
namespace Flow.Launcher.Helper
|
namespace Flow.Launcher.Helper
|
||||||
{
|
{
|
||||||
|
|
@ -45,4 +47,4 @@ namespace Flow.Launcher.Helper
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue