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
|
||||
return null;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Exception("PluginManager", "Exception", e);
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,8 +51,9 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="Ben.Demystifier" Version="0.4.1" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="16.10.56" />
|
||||
<PackageReference Include="NLog.Schema" Version="4.7.0-rc1" />
|
||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.0" />
|
||||
<PackageReference Include="NLog" Version="4.7.10" />
|
||||
<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="ToolGood.Words.Pinyin" Version="3.0.1.4" />
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
|
@ -6,8 +6,10 @@ using NLog.Config;
|
|||
using NLog.Targets;
|
||||
using Flow.Launcher.Infrastructure.UserSettings;
|
||||
using JetBrains.Annotations;
|
||||
using NLog.Fluent;
|
||||
using NLog.Targets.Wrappers;
|
||||
using System.Runtime.ExceptionServices;
|
||||
using System.Text;
|
||||
|
||||
namespace Flow.Launcher.Infrastructure.Logger
|
||||
{
|
||||
|
|
@ -26,29 +28,33 @@ namespace Flow.Launcher.Infrastructure.Logger
|
|||
}
|
||||
|
||||
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
|
||||
{
|
||||
FileName = CurrentLogDirectory.Replace(@"\", "/") + "/${shortdate}.txt"
|
||||
FileName = CurrentLogDirectory.Replace(@"\", "/") + "/${shortdate}.txt",
|
||||
Layout = layout
|
||||
};
|
||||
|
||||
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("console", debugTarget);
|
||||
configuration.AddTarget("debug", debugTarget);
|
||||
|
||||
#if DEBUG
|
||||
var fileRule = new LoggingRule("*", LogLevel.Debug, fileTargetASyncWrapper);
|
||||
var debugRule = new LoggingRule("*", LogLevel.Debug, debugTarget);
|
||||
configuration.LoggingRules.Add(debugRule);
|
||||
#else
|
||||
var rule = new LoggingRule("*", LogLevel.Info, fileTargetASyncWrapper);
|
||||
var debugRule = new LoggingRule("*", LogLevel.Info, consoleTarget);
|
||||
var fileRule = new LoggingRule("*", LogLevel.Info, fileTargetASyncWrapper);
|
||||
#endif
|
||||
configuration.LoggingRules.Add(fileRule);
|
||||
configuration.LoggingRules.Add(debugRule);
|
||||
LogManager.Configuration = configuration;
|
||||
}
|
||||
|
||||
|
|
@ -105,22 +111,9 @@ namespace Flow.Launcher.Infrastructure.Logger
|
|||
{
|
||||
var logger = LogManager.GetLogger(classAndMethod);
|
||||
|
||||
var messageBuilder = new StringBuilder();
|
||||
|
||||
logger.Error("-------------------------- Begin exception --------------------------");
|
||||
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 --------------------------");
|
||||
logger.Error(e, message);
|
||||
}
|
||||
|
||||
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="e">Exception</param>
|
||||
[MethodImpl(MethodImplOptions.Synchronized)]
|
||||
public static void Exception(string message, System.Exception e)
|
||||
{
|
||||
e = e.Demystify();
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ using System.Windows.Threading;
|
|||
using NLog;
|
||||
using Flow.Launcher.Infrastructure;
|
||||
using Flow.Launcher.Infrastructure.Exception;
|
||||
using NLog.Fluent;
|
||||
using Log = Flow.Launcher.Infrastructure.Logger.Log;
|
||||
|
||||
namespace Flow.Launcher.Helper
|
||||
{
|
||||
|
|
@ -45,4 +47,4 @@ namespace Flow.Launcher.Helper
|
|||
return info;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue