From cb9915f37e616d22e164d9ce0e8015fdb5cff245 Mon Sep 17 00:00:00 2001 From: RogueException Date: Fri, 6 Nov 2015 00:45:03 -0400 Subject: [PATCH] Add Exception property to log messages --- src/Discord.Net/DiscordClient.Voice.cs | 2 +- src/Discord.Net/DiscordWSClient.Events.cs | 12 +++++++----- src/Discord.Net/DiscordWSClient.cs | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Discord.Net/DiscordClient.Voice.cs b/src/Discord.Net/DiscordClient.Voice.cs index 60ef69c81..795b4f75e 100644 --- a/src/Discord.Net/DiscordClient.Voice.cs +++ b/src/Discord.Net/DiscordClient.Voice.cs @@ -40,7 +40,7 @@ namespace Discord config.VoiceClientId = unchecked(++_nextVoiceClientId); return new DiscordWSClient(config, server.Id); }); - client.LogMessage += (s, e) => RaiseOnLog(e.Severity, e.Source, $"(#{client.Config.VoiceClientId}) {e.Message}"); + client.LogMessage += (s, e) => RaiseOnLog(e.Severity, e.Source, $"(#{client.Config.VoiceClientId}) {e.Message}", e.Exception); await client.Connect(_gateway, _token).ConfigureAwait(false); return client; } diff --git a/src/Discord.Net/DiscordWSClient.Events.cs b/src/Discord.Net/DiscordWSClient.Events.cs index 3c5e24390..c665ddcfb 100644 --- a/src/Discord.Net/DiscordWSClient.Events.cs +++ b/src/Discord.Net/DiscordWSClient.Events.cs @@ -47,13 +47,15 @@ namespace Discord public LogMessageSeverity Severity { get; } public LogMessageSource Source { get; } public string Message { get; } + public Exception Exception { get; } - internal LogMessageEventArgs(LogMessageSeverity severity, LogMessageSource source, string msg) + internal LogMessageEventArgs(LogMessageSeverity severity, LogMessageSource source, string msg, Exception exception) { Severity = severity; Source = source; - Message = msg; - } + Message = msg; + Exception = exception; + } } public sealed class VoicePacketEventArgs @@ -88,10 +90,10 @@ namespace Discord RaiseEvent(nameof(Disconnected), () => Disconnected(this, e)); } public event EventHandler LogMessage; - internal void RaiseOnLog(LogMessageSeverity severity, LogMessageSource source, string message) + internal void RaiseOnLog(LogMessageSeverity severity, LogMessageSource source, string message, Exception exception = null) { if (LogMessage != null) - RaiseEvent(nameof(LogMessage), () => LogMessage(this, new LogMessageEventArgs(severity, source, message))); + RaiseEvent(nameof(LogMessage), () => LogMessage(this, new LogMessageEventArgs(severity, source, message, exception))); } public event EventHandler VoiceConnected; diff --git a/src/Discord.Net/DiscordWSClient.cs b/src/Discord.Net/DiscordWSClient.cs index a05dd1204..edd361623 100644 --- a/src/Discord.Net/DiscordWSClient.cs +++ b/src/Discord.Net/DiscordWSClient.cs @@ -82,7 +82,7 @@ namespace Discord if (!_config.VoiceOnly) { - socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.DataWebSocket, e.Message); + socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.DataWebSocket, e.Message, e.Exception); if (_config.LogLevel >= LogMessageSeverity.Info) { socket.Connected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Connected"); @@ -96,7 +96,7 @@ namespace Discord internal virtual VoiceWebSocket CreateVoiceSocket() { var socket = new VoiceWebSocket(this); - socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.VoiceWebSocket, e.Message); + socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.VoiceWebSocket, e.Message, e.Exception); socket.Connected += (s, e) => RaiseVoiceConnected(); socket.Disconnected += async (s, e) => { @@ -288,7 +288,7 @@ namespace Discord { var ex2 = ex.GetBaseException(); RaiseOnLog(LogMessageSeverity.Error, LogMessageSource.Client, - $"{name}'s handler raised {ex2.GetType().Name}: ${ex2.Message}"); + $"{name}'s handler raised {ex2.GetType().Name}: ${ex2.Message}", ex); } }