refactor(services): route logging through IPluginLogProxy

F12.2 step 5b — service cluster (~42 sites in 16 files):
MessageManager, GameFunctions/{Chat, GameFunctions, KeybindManager},
EmoteCache, PayloadHandler, AutoTellTabsService, FontManager, Commands,
Util/{WrapperUtil, AutoTranslate, MemoryUtil}, Message, Themes/ThemeRegistry,
Ipc/ExtraChat, Configuration.

The proxy interface gained Dalamud's params-overload signature
(messageTemplate + params object[]) to cover Configuration.cs:86 which
relies on Serilog-style placeholders.

Verified: zero remaining Plugin.Log.X(...) call-sites in HellionChat/,
build green, build-suite 690/690.
This commit is contained in:
2026-05-13 08:38:40 +02:00
parent 63cad62c89
commit fee2459e73
18 changed files with 78 additions and 42 deletions
+2 -2
View File
@@ -62,7 +62,7 @@ internal static class AutoTranslate
{
var sw = Stopwatch.StartNew();
AllEntries();
Plugin.Log.Debug($"Warming up auto-translate took {sw.ElapsedMilliseconds}ms");
Plugin.LogProxy.Debug($"Warming up auto-translate took {sw.ElapsedMilliseconds}ms");
})
{
IsBackground = true,
@@ -197,7 +197,7 @@ internal static class AutoTranslate
}
catch (Exception ex)
{
Plugin.Log.Error(ex, $"failed to translate: {lookup}");
Plugin.LogProxy.Error(ex, $"failed to translate: {lookup}");
}
}
+21
View File
@@ -13,28 +13,49 @@ internal sealed class DalamudPluginLogProxy : IPluginLogProxy
public void Verbose(Exception exception, string message) => _log.Verbose(exception, message);
public void Verbose(string messageTemplate, params object[] values) =>
_log.Verbose(messageTemplate, values);
public void Debug(string message) => _log.Debug(message);
public void Debug(Exception exception, string message) => _log.Debug(exception, message);
public void Debug(string messageTemplate, params object[] values) =>
_log.Debug(messageTemplate, values);
public void Information(string message) => _log.Information(message);
public void Information(Exception exception, string message) =>
_log.Information(exception, message);
public void Information(string messageTemplate, params object[] values) =>
_log.Information(messageTemplate, values);
public void Info(string message) => _log.Info(message);
public void Info(Exception exception, string message) => _log.Info(exception, message);
public void Info(string messageTemplate, params object[] values) =>
_log.Info(messageTemplate, values);
public void Warning(string message) => _log.Warning(message);
public void Warning(Exception exception, string message) => _log.Warning(exception, message);
public void Warning(string messageTemplate, params object[] values) =>
_log.Warning(messageTemplate, values);
public void Error(string message) => _log.Error(message);
public void Error(Exception exception, string message) => _log.Error(exception, message);
public void Error(string messageTemplate, params object[] values) =>
_log.Error(messageTemplate, values);
public void Fatal(string message) => _log.Fatal(message);
public void Fatal(Exception exception, string message) => _log.Fatal(exception, message);
public void Fatal(string messageTemplate, params object[] values) =>
_log.Fatal(messageTemplate, values);
}
+7
View File
@@ -10,24 +10,31 @@ internal interface IPluginLogProxy
{
void Verbose(string message);
void Verbose(Exception exception, string message);
void Verbose(string messageTemplate, params object[] values);
void Debug(string message);
void Debug(Exception exception, string message);
void Debug(string messageTemplate, params object[] values);
void Information(string message);
void Information(Exception exception, string message);
void Information(string messageTemplate, params object[] values);
// IPluginLog exposes Info as a distinct method (short alias of
// Information) — both are present so call-sites stay drop-in.
void Info(string message);
void Info(Exception exception, string message);
void Info(string messageTemplate, params object[] values);
void Warning(string message);
void Warning(Exception exception, string message);
void Warning(string messageTemplate, params object[] values);
void Error(string message);
void Error(Exception exception, string message);
void Error(string messageTemplate, params object[] values);
void Fatal(string message);
void Fatal(Exception exception, string message);
void Fatal(string messageTemplate, params object[] values);
}
+1 -1
View File
@@ -42,6 +42,6 @@ public static class MemoryUtil
str.Append(' ');
}
Plugin.Log.Information(str.ToString());
Plugin.LogProxy.Information(str.ToString());
}
}
+2 -2
View File
@@ -21,12 +21,12 @@ public static class WrapperUtil
{
try
{
Plugin.Log.Debug($"Opening URI {uri} in default browser");
Plugin.LogProxy.Debug($"Opening URI {uri} in default browser");
Plugin.PlatformUtil.OpenLink(uri.ToString());
}
catch (Exception ex)
{
Plugin.Log.Error($"Error opening URI: {ex}");
Plugin.LogProxy.Error($"Error opening URI: {ex}");
AddNotification(Language.Context_OpenInBrowserError, NotificationType.Error);
}
}