mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
Fix missing plugin names in log, filter quirk
- Re-add the [PluginName] tag to plugin log messages - Remove source prepending from the SerilogEventSink - Force a filter refresh on enabling/disabling log filtering - Convert ModuleLog to properly tag its messages with SourceContext
This commit is contained in:
parent
49793a1f17
commit
5dd883db25
4 changed files with 44 additions and 22 deletions
|
|
@ -152,7 +152,10 @@ namespace Dalamud.Interface.Internal.Windows
|
||||||
// Filter menu
|
// Filter menu
|
||||||
if (ImGui.BeginPopup("Filters"))
|
if (ImGui.BeginPopup("Filters"))
|
||||||
{
|
{
|
||||||
ImGui.Checkbox("Enabled", ref this.isFiltered);
|
if (ImGui.Checkbox("Enabled", ref this.isFiltered))
|
||||||
|
{
|
||||||
|
this.Refilter();
|
||||||
|
}
|
||||||
|
|
||||||
if (ImGui.InputTextWithHint("##filterText", "Text Filter", ref this.textFilter, 255, ImGuiInputTextFlags.EnterReturnsTrue))
|
if (ImGui.InputTextWithHint("##filterText", "Text Filter", ref this.textFilter, 255, ImGuiInputTextFlags.EnterReturnsTrue))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
|
using Serilog;
|
||||||
|
using Serilog.Events;
|
||||||
|
|
||||||
namespace Dalamud.Logging.Internal
|
namespace Dalamud.Logging.Internal
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -8,15 +11,19 @@ namespace Dalamud.Logging.Internal
|
||||||
public class ModuleLog
|
public class ModuleLog
|
||||||
{
|
{
|
||||||
private readonly string moduleName;
|
private readonly string moduleName;
|
||||||
|
private readonly ILogger moduleLogger;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="ModuleLog"/> class.
|
/// Initializes a new instance of the <see cref="ModuleLog"/> class.
|
||||||
/// This class can be used to prefix logging messages with a Dalamud module name prefix. For example, "[PLUGINR] ...".
|
/// This class can be used to prefix logging messages with a Dalamud module name prefix. For example, "[PLUGINR] ...".
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="moduleName">The module name.</param>
|
/// <param name="moduleName">The module name.</param>
|
||||||
public ModuleLog(string moduleName)
|
public ModuleLog(string? moduleName)
|
||||||
{
|
{
|
||||||
this.moduleName = moduleName;
|
// FIXME: Should be namespaced better, e.g. `Dalamud.PluginLoader`, but that becomes a relatively large
|
||||||
|
// change.
|
||||||
|
this.moduleName = moduleName ?? "DalamudInternal";
|
||||||
|
this.moduleLogger = Log.ForContext("SourceContext", this.moduleName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -25,7 +32,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Verbose(string messageTemplate, params object[] values)
|
public void Verbose(string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Verbose($"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Verbose, messageTemplate, null, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated verbose message to the in-game debug log.
|
/// Log a templated verbose message to the in-game debug log.
|
||||||
|
|
@ -34,7 +41,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Verbose(Exception exception, string messageTemplate, params object[] values)
|
public void Verbose(Exception exception, string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Verbose(exception, $"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Verbose, messageTemplate, exception, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated debug message to the in-game debug log.
|
/// Log a templated debug message to the in-game debug log.
|
||||||
|
|
@ -42,7 +49,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Debug(string messageTemplate, params object[] values)
|
public void Debug(string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Debug($"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Debug, messageTemplate, null, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated debug message to the in-game debug log.
|
/// Log a templated debug message to the in-game debug log.
|
||||||
|
|
@ -51,7 +58,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Debug(Exception exception, string messageTemplate, params object[] values)
|
public void Debug(Exception exception, string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Debug(exception, $"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Debug, messageTemplate, exception, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated information message to the in-game debug log.
|
/// Log a templated information message to the in-game debug log.
|
||||||
|
|
@ -59,7 +66,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Information(string messageTemplate, params object[] values)
|
public void Information(string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Information($"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Information, messageTemplate, null, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated information message to the in-game debug log.
|
/// Log a templated information message to the in-game debug log.
|
||||||
|
|
@ -68,7 +75,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Information(Exception exception, string messageTemplate, params object[] values)
|
public void Information(Exception exception, string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Information(exception, $"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Information, messageTemplate, exception, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated warning message to the in-game debug log.
|
/// Log a templated warning message to the in-game debug log.
|
||||||
|
|
@ -76,7 +83,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Warning(string messageTemplate, params object[] values)
|
public void Warning(string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Warning($"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Warning, messageTemplate, null, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated warning message to the in-game debug log.
|
/// Log a templated warning message to the in-game debug log.
|
||||||
|
|
@ -85,7 +92,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Warning(Exception exception, string messageTemplate, params object[] values)
|
public void Warning(Exception exception, string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Warning(exception, $"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Warning, messageTemplate, exception, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated error message to the in-game debug log.
|
/// Log a templated error message to the in-game debug log.
|
||||||
|
|
@ -93,7 +100,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Error(string messageTemplate, params object[] values)
|
public void Error(string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Error($"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Error, messageTemplate, null, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated error message to the in-game debug log.
|
/// Log a templated error message to the in-game debug log.
|
||||||
|
|
@ -102,7 +109,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Error(Exception exception, string messageTemplate, params object[] values)
|
public void Error(Exception exception, string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Error(exception, $"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Error, messageTemplate, exception, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated fatal message to the in-game debug log.
|
/// Log a templated fatal message to the in-game debug log.
|
||||||
|
|
@ -110,7 +117,7 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Fatal(string messageTemplate, params object[] values)
|
public void Fatal(string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Fatal($"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Fatal, messageTemplate, null, values);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Log a templated fatal message to the in-game debug log.
|
/// Log a templated fatal message to the in-game debug log.
|
||||||
|
|
@ -119,6 +126,17 @@ namespace Dalamud.Logging.Internal
|
||||||
/// <param name="messageTemplate">The message template.</param>
|
/// <param name="messageTemplate">The message template.</param>
|
||||||
/// <param name="values">Values to log.</param>
|
/// <param name="values">Values to log.</param>
|
||||||
public void Fatal(Exception exception, string messageTemplate, params object[] values)
|
public void Fatal(Exception exception, string messageTemplate, params object[] values)
|
||||||
=> Serilog.Log.Fatal(exception, $"[{this.moduleName}] {messageTemplate}", values);
|
=> this.WriteLog(LogEventLevel.Fatal, messageTemplate, exception, values);
|
||||||
|
|
||||||
|
private void WriteLog(LogEventLevel level, string messageTemplate, Exception? exception = null, params object[] values)
|
||||||
|
{
|
||||||
|
// FIXME: Eventually, the `pluginName` tag should be removed from here and moved over to the actual log
|
||||||
|
// formatter.
|
||||||
|
this.moduleLogger.Write(
|
||||||
|
level,
|
||||||
|
exception: exception,
|
||||||
|
messageTemplate: $"[{this.moduleName}] {messageTemplate}",
|
||||||
|
values);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,12 +40,6 @@ namespace Dalamud.Logging.Internal
|
||||||
{
|
{
|
||||||
var message = logEvent.RenderMessage(this.formatProvider);
|
var message = logEvent.RenderMessage(this.formatProvider);
|
||||||
|
|
||||||
if (logEvent.Properties.TryGetValue("SourceContext", out var sourceProp) &&
|
|
||||||
sourceProp is ScalarValue { Value: string source })
|
|
||||||
{
|
|
||||||
message = $"[{source}] {message}";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (logEvent.Exception != null)
|
if (logEvent.Exception != null)
|
||||||
{
|
{
|
||||||
message += "\n" + logEvent.Exception;
|
message += "\n" + logEvent.Exception;
|
||||||
|
|
|
||||||
|
|
@ -248,7 +248,14 @@ namespace Dalamud.Logging
|
||||||
private static void WriteLog(string? pluginName, LogEventLevel level, string messageTemplate, Exception? exception = null, params object[] values)
|
private static void WriteLog(string? pluginName, LogEventLevel level, string messageTemplate, Exception? exception = null, params object[] values)
|
||||||
{
|
{
|
||||||
var pluginLogger = GetPluginLogger(pluginName);
|
var pluginLogger = GetPluginLogger(pluginName);
|
||||||
pluginLogger.Write(level, exception: exception, messageTemplate: messageTemplate, values);
|
|
||||||
|
// FIXME: Eventually, the `pluginName` tag should be removed from here and moved over to the actual log
|
||||||
|
// formatter.
|
||||||
|
pluginLogger.Write(
|
||||||
|
level,
|
||||||
|
exception: exception,
|
||||||
|
messageTemplate: $"[{pluginName}] {messageTemplate}",
|
||||||
|
values);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue