diff --git a/Dalamud/Troubleshooting.cs b/Dalamud/Troubleshooting.cs index 1891d5190..8cabc4ede 100644 --- a/Dalamud/Troubleshooting.cs +++ b/Dalamud/Troubleshooting.cs @@ -1,30 +1,32 @@ using System; using System.Collections.Generic; using System.Linq; + using Dalamud.Configuration; using Dalamud.Plugin; using Newtonsoft.Json; using Serilog; + using Encoding = System.Text.Encoding; namespace Dalamud { + /// + /// Class responsible for printing troubleshooting information to the log. + /// internal static class Troubleshooting { - private class TroubleshootingPayload { - public PluginDefinition[] LoadedPlugins { get; set; } - public string DalamudVersion { get; set; } - public string GameVersion { get; set; } - public string Language { get; set; } - public bool DoDalamudTest { get; set; } - public bool DoPluginTest { get; set; } - public bool InterfaceLoaded { get; set; } - public List ThirdRepo { get; set; } - } - - public static void LogTroubleshooting(Dalamud dalamud, bool isInterfaceLoaded) { - try { - var payload = new TroubleshootingPayload { + /// + /// Log troubleshooting information to Serilog. + /// + /// The instance to read information from. + /// Whether or not the interface was loaded. + public static void LogTroubleshooting(Dalamud dalamud, bool isInterfaceLoaded) + { + try + { + var payload = new TroubleshootingPayload + { LoadedPlugins = dalamud.PluginManager.Plugins.Select(x => x.Definition).ToArray(), DalamudVersion = Util.AssemblyVersion, GameVersion = dalamud.StartInfo.GameVersion, @@ -32,16 +34,36 @@ namespace Dalamud DoDalamudTest = dalamud.Configuration.DoDalamudTest, DoPluginTest = dalamud.Configuration.DoPluginTest, InterfaceLoaded = isInterfaceLoaded, - ThirdRepo = dalamud.Configuration.ThirdRepoList + ThirdRepo = dalamud.Configuration.ThirdRepoList, }; - Log.Information("TROUBLESHOOTING:" + System.Convert.ToBase64String( Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload)))); - } catch (Exception ex) { + } + catch (Exception ex) + { Log.Error(ex, "Could not print troubleshooting."); } } + + private class TroubleshootingPayload + { + public PluginDefinition[] LoadedPlugins { get; set; } + + public string DalamudVersion { get; set; } + + public string GameVersion { get; set; } + + public string Language { get; set; } + + public bool DoDalamudTest { get; set; } + + public bool DoPluginTest { get; set; } + + public bool InterfaceLoaded { get; set; } + + public List ThirdRepo { get; set; } + } } }