Merge pull request #2594 from Haselnussbomber/troubleshooting-json
Some checks failed
Tag Build / Tag Build (push) Successful in 5s
Build Dalamud / Build on Windows (push) Has been cancelled
Build Dalamud / Check API Compatibility (push) Has been cancelled
Build Dalamud / Deploy dalamud-distrib staging (push) Has been cancelled

Write troubleshooting to json file
This commit is contained in:
goat 2026-02-08 12:40:08 +01:00 committed by GitHub
commit 28e39ab9e2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View file

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
@ -68,6 +69,7 @@ public static class Troubleshooting
{
var payload = new TroubleshootingPayload
{
Timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
LoadedPlugins = pluginManager?.InstalledPlugins?.Select(x => x.Manifest as LocalPluginManifest)?.OrderByDescending(x => x.InternalName).ToArray(),
PluginStates = pluginManager?.InstalledPlugins?.Where(x => !x.IsDev).ToDictionary(x => x.Manifest.InternalName, x => x.IsBanned ? "Banned" : x.State.ToString()),
EverStartedLoadingPlugins = pluginManager?.InstalledPlugins.Where(x => x.HasEverStartedLoad).Select(x => x.InternalName).ToList(),
@ -85,6 +87,13 @@ public static class Troubleshooting
var encodedPayload = Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload)));
Log.Information($"TROUBLESHOOTING:{encodedPayload}");
File.WriteAllText(
Path.Join(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"XIVLauncher",
"dalamud.troubleshooting.json"),
JsonConvert.SerializeObject(payload, Formatting.Indented));
}
catch (Exception ex)
{
@ -103,6 +112,8 @@ public static class Troubleshooting
private class TroubleshootingPayload
{
public long Timestamp { get; set; }
public LocalPluginManifest[]? LoadedPlugins { get; set; }
public Dictionary<string, string>? PluginStates { get; set; }

View file

@ -476,6 +476,7 @@ void export_tspack(HWND hWndParent, const std::filesystem::path& logDir, const s
"launcher.log", // XIVLauncher.Core for [mostly] Linux
"patcher.log",
"dalamud.log",
"dalamud.troubleshooting.json",
"dalamud.injector.log",
"dalamud.boot.log",
"aria.log",
@ -693,7 +694,7 @@ void restart_game_using_injector(int nRadioButton, const std::vector<std::wstrin
void get_cpu_info(wchar_t *vendor, wchar_t *brand)
{
// Gotten and reformatted to not include all data as listed at https://learn.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex?view=msvc-170#example
// int cpuInfo[4] = {-1};
std::array<int, 4> cpui;
int nIds_;