Added logging shortcuts, simplied log messages

This commit is contained in:
RogueException
2015-12-11 09:07:03 -04:00
parent 910b4c4c3d
commit 7986b819ee
9 changed files with 79 additions and 94 deletions

View File

@@ -82,7 +82,7 @@ namespace Discord.Audio
} }
catch (Exception ex) catch (Exception ex)
{ {
_gatewaySocket.Logger.Log(LogSeverity.Error, $"Error handling {e.Type} event", ex); _gatewaySocket.Logger.Error($"Error handling {e.Type} event", ex);
} }
}; };
} }

View File

@@ -84,7 +84,7 @@ namespace Discord.Net.WebSockets
catch (OperationCanceledException) { throw; } catch (OperationCanceledException) { throw; }
catch (Exception ex) catch (Exception ex)
{ {
_logger.Log(LogSeverity.Error, "Reconnect failed", ex); _logger.Error("Reconnect failed", ex);
//Net is down? We can keep trying to reconnect until the user runs Disconnect() //Net is down? We can keep trying to reconnect until the user runs Disconnect()
await Task.Delay(_config.FailedReconnectDelay, cancelToken).ConfigureAwait(false); await Task.Delay(_config.FailedReconnectDelay, cancelToken).ConfigureAwait(false);
} }
@@ -362,7 +362,7 @@ namespace Discord.Net.WebSockets
} }
catch (SocketException ex) catch (SocketException ex)
{ {
_logger.Log(LogSeverity.Error, "Failed to send UDP packet.", ex); _logger.Error("Failed to send UDP packet.", ex);
} }
hasFrame = false; hasFrame = false;
} }
@@ -469,7 +469,7 @@ namespace Discord.Net.WebSockets
break; break;
default: default:
if (_logger.Level >= LogSeverity.Warning) if (_logger.Level >= LogSeverity.Warning)
_logger.Log(LogSeverity.Warning, $"Unknown Opcode: {opCode}"); _logger.Warning($"Unknown Opcode: {opCode}");
break; break;
} }
} }

View File

@@ -1,8 +1,4 @@
using System; namespace Discord.Audio.Opus
using System.Runtime.InteropServices;
using System.Security;
namespace Discord.Audio.Opus
{ {
internal enum OpusCtl : int internal enum OpusCtl : int
{ {

View File

@@ -10,7 +10,7 @@ namespace Discord
catch (Exception ex) catch (Exception ex)
{ {
var ex2 = ex.GetBaseException(); var ex2 = ex.GetBaseException();
logger.Log(LogSeverity.Error, $"{name}'s handler raised {ex2.GetType().Name}: ${ex2.Message}", ex); logger.Error($"{name}'s handler raised {ex2.GetType().Name}: ${ex2.Message}", ex);
} }
} }
} }

View File

@@ -169,59 +169,34 @@ namespace Discord
_logger = _log.CreateLogger("Client"); _logger = _log.CreateLogger("Client");
if (_logger.Level >= LogSeverity.Info) if (_logger.Level >= LogSeverity.Info)
{ {
JoinedServer += (s, e) => _logger.Log(LogSeverity.Info, JoinedServer += (s, e) => _logger.Info($"Server Created: {e.Server?.Name ?? "[Private]"}");
$"Server Created: {e.Server?.Name ?? "[Private]"}"); LeftServer += (s, e) => _logger.Info($"Server Destroyed: {e.Server?.Name ?? "[Private]"}");
LeftServer += (s, e) => _logger.Log(LogSeverity.Info, ServerUpdated += (s, e) => _logger.Info($"Server Updated: {e.Server?.Name ?? "[Private]"}");
$"Server Destroyed: {e.Server?.Name ?? "[Private]"}"); ServerAvailable += (s, e) => _logger.Info($"Server Available: {e.Server?.Name ?? "[Private]"}");
ServerUpdated += (s, e) => _logger.Log(LogSeverity.Info, ServerUnavailable += (s, e) => _logger.Info($"Server Unavailable: {e.Server?.Name ?? "[Private]"}");
$"Server Updated: {e.Server?.Name ?? "[Private]"}"); ChannelCreated += (s, e) => _logger.Info($"Channel Created: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}");
ServerAvailable += (s, e) => _logger.Log(LogSeverity.Info, ChannelDestroyed += (s, e) => _logger.Info($"Channel Destroyed: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}");
$"Server Available: {e.Server?.Name ?? "[Private]"}"); ChannelUpdated += (s, e) => _logger.Info($"Channel Updated: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}");
ServerUnavailable += (s, e) => _logger.Log(LogSeverity.Info, MessageReceived += (s, e) => _logger.Info($"Message Received: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}");
$"Server Unavailable: {e.Server?.Name ?? "[Private]"}"); MessageDeleted += (s, e) => _logger.Info($"Message Deleted: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}");
ChannelCreated += (s, e) => _logger.Log(LogSeverity.Info, MessageUpdated += (s, e) => _logger.Info($"Message Update: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}");
$"Channel Created: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}"); RoleCreated += (s, e) => _logger.Info($"Role Created: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}");
ChannelDestroyed += (s, e) => _logger.Log(LogSeverity.Info, RoleUpdated += (s, e) => _logger.Info($"Role Updated: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}");
$"Channel Destroyed: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}"); RoleDeleted += (s, e) => _logger.Info($"Role Deleted: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}");
ChannelUpdated += (s, e) => _logger.Log(LogSeverity.Info, UserBanned += (s, e) => _logger.Info($"Banned User: {e.Server?.Name ?? "[Private]" }/{e.UserId}");
$"Channel Updated: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}"); UserUnbanned += (s, e) => _logger.Info($"Unbanned User: {e.Server?.Name ?? "[Private]"}/{e.UserId}");
MessageReceived += (s, e) => _logger.Log(LogSeverity.Info, UserJoined += (s, e) => _logger.Info($"User Joined: {e.Server?.Name ?? "[Private]"}/{e.User.Name}");
$"Message Received: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); UserLeft += (s, e) => _logger.Info($"User Left: {e.Server?.Name ?? "[Private]"}/{e.User.Name}");
MessageDeleted += (s, e) => _logger.Log(LogSeverity.Info, UserUpdated += (s, e) => _logger.Info($"User Updated: {e.Server?.Name ?? "[Private]"}/{e.User.Name}");
$"Message Deleted: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); UserVoiceStateUpdated += (s, e) => _logger.Info($"Voice Updated: {e.Server?.Name ?? "[Private]"}/{e.User.Name}");
MessageUpdated += (s, e) => _logger.Log(LogSeverity.Info, ProfileUpdated += (s, e) => _logger.Info("Profile Updated");
$"Message Update: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}");
RoleCreated += (s, e) => _logger.Log(LogSeverity.Info,
$"Role Created: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}");
RoleUpdated += (s, e) => _logger.Log(LogSeverity.Info,
$"Role Updated: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}");
RoleDeleted += (s, e) => _logger.Log(LogSeverity.Info,
$"Role Deleted: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}");
UserBanned += (s, e) => _logger.Log(LogSeverity.Info,
$"Banned User: {e.Server?.Name ?? "[Private]" }/{e.UserId}");
UserUnbanned += (s, e) => _logger.Log(LogSeverity.Info,
$"Unbanned User: {e.Server?.Name ?? "[Private]"}/{e.UserId}");
UserJoined += (s, e) => _logger.Log(LogSeverity.Info,
$"User Joined: {e.Server?.Name ?? "[Private]"}/{e.User.Name}");
UserLeft += (s, e) => _logger.Log(LogSeverity.Info,
$"User Left: {e.Server?.Name ?? "[Private]"}/{e.User.Name}");
UserUpdated += (s, e) => _logger.Log(LogSeverity.Info,
$"User Updated: {e.Server?.Name ?? "[Private]"}/{e.User.Name}");
UserVoiceStateUpdated += (s, e) => _logger.Log(LogSeverity.Info,
$"User Updated (Voice): {e.Server?.Name ?? "[Private]"}/{e.User.Name}");
ProfileUpdated += (s, e) => _logger.Log(LogSeverity.Info,
"Profile Updated");
} }
if (_log.Level >= LogSeverity.Verbose) if (_log.Level >= LogSeverity.Verbose)
{ {
UserIsTypingUpdated += (s, e) => _logger.Log(LogSeverity.Verbose, UserIsTypingUpdated += (s, e) => _logger.Verbose($"Is Typing: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.User?.Name}");
$"User Updated (Typing): {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.User?.Name}"); MessageAcknowledged += (s, e) => _logger.Verbose($"Ack Message: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}");
MessageAcknowledged += (s, e) => _logger.Log(LogSeverity.Verbose, MessageSent += (s, e) => _logger.Verbose($"Sent Message: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}");
$"Ack'd Message: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); UserPresenceUpdated += (s, e) => _logger.Verbose($"Presence Updated: {e.Server?.Name ?? "[Private]"}/{e.User?.Name}");
MessageSent += (s, e) => _logger.Log(LogSeverity.Verbose,
$"Sent Message: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}");
UserPresenceUpdated += (s, e) => _logger.Log(LogSeverity.Verbose,
$"User Updated (Presence): {e.Server?.Name ?? "[Private]"}/{e.User?.Name}");
} }
} }
private void CreateRestLogger() private void CreateRestLogger()
@@ -232,9 +207,9 @@ namespace Discord
_api.RestClient.OnRequest += (s, e) => _api.RestClient.OnRequest += (s, e) =>
{ {
if (e.Payload != null) if (e.Payload != null)
_restLogger.Log(LogSeverity.Verbose, $"{e.Method} {e.Path}: {Math.Round(e.ElapsedMilliseconds, 2)} ms ({e.Payload})"); _restLogger.Verbose( $"{e.Method} {e.Path}: {Math.Round(e.ElapsedMilliseconds, 2)} ms ({e.Payload})");
else else
_restLogger.Log(LogSeverity.Verbose, $"{e.Method} {e.Path}: {Math.Round(e.ElapsedMilliseconds, 2)} ms"); _restLogger.Verbose( $"{e.Method} {e.Path}: {Math.Round(e.ElapsedMilliseconds, 2)} ms");
}; };
} }
} }
@@ -243,25 +218,25 @@ namespace Discord
_cacheLogger = _log.CreateLogger("Cache"); _cacheLogger = _log.CreateLogger("Cache");
if (_log.Level >= LogSeverity.Debug) if (_log.Level >= LogSeverity.Debug)
{ {
_channels.ItemCreated += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Created Channel {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}"); _channels.ItemCreated += (s, e) => _cacheLogger.Debug( $"Created Channel {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}");
_channels.ItemDestroyed += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Destroyed Channel {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}"); _channels.ItemDestroyed += (s, e) => _cacheLogger.Debug( $"Destroyed Channel {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}");
_channels.Cleared += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Cleared Channels"); _channels.Cleared += (s, e) => _cacheLogger.Debug( $"Cleared Channels");
_users.ItemCreated += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Created User {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}"); _users.ItemCreated += (s, e) => _cacheLogger.Debug( $"Created User {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}");
_users.ItemDestroyed += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Destroyed User {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}"); _users.ItemDestroyed += (s, e) => _cacheLogger.Debug( $"Destroyed User {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}");
_users.Cleared += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Cleared Users"); _users.Cleared += (s, e) => _cacheLogger.Debug( $"Cleared Users");
_messages.ItemCreated += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Created Message {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Channel.Id}/{e.Item.Id}"); _messages.ItemCreated += (s, e) => _cacheLogger.Debug( $"Created Message {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Channel.Id}/{e.Item.Id}");
_messages.ItemDestroyed += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Destroyed Message {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Channel.Id}/{e.Item.Id}"); _messages.ItemDestroyed += (s, e) => _cacheLogger.Debug( $"Destroyed Message {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Channel.Id}/{e.Item.Id}");
_messages.ItemRemapped += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Remapped Message {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Channel.Id}/[{e.OldId} -> {e.NewId}]"); _messages.ItemRemapped += (s, e) => _cacheLogger.Debug( $"Remapped Message {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Channel.Id}/[{e.OldId} -> {e.NewId}]");
_messages.Cleared += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Cleared Messages"); _messages.Cleared += (s, e) => _cacheLogger.Debug( $"Cleared Messages");
_roles.ItemCreated += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Created Role {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}"); _roles.ItemCreated += (s, e) => _cacheLogger.Debug( $"Created Role {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}");
_roles.ItemDestroyed += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Destroyed Role {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}"); _roles.ItemDestroyed += (s, e) => _cacheLogger.Debug( $"Destroyed Role {IdConvert.ToString(e.Item.Server?.Id) ?? "[Private]"}/{e.Item.Id}");
_roles.Cleared += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Cleared Roles"); _roles.Cleared += (s, e) => _cacheLogger.Debug( $"Cleared Roles");
_servers.ItemCreated += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Created Server {e.Item.Id}"); _servers.ItemCreated += (s, e) => _cacheLogger.Debug( $"Created Server {e.Item.Id}");
_servers.ItemDestroyed += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Destroyed Server {e.Item.Id}"); _servers.ItemDestroyed += (s, e) => _cacheLogger.Debug( $"Destroyed Server {e.Item.Id}");
_servers.Cleared += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Cleared Servers"); _servers.Cleared += (s, e) => _cacheLogger.Debug( $"Cleared Servers");
_globalUsers.ItemCreated += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Created User {e.Item.Id}"); _globalUsers.ItemCreated += (s, e) => _cacheLogger.Debug( $"Created User {e.Item.Id}");
_globalUsers.ItemDestroyed += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Destroyed User {e.Item.Id}"); _globalUsers.ItemDestroyed += (s, e) => _cacheLogger.Debug( $"Destroyed User {e.Item.Id}");
_globalUsers.Cleared += (s, e) => _cacheLogger.Log(LogSeverity.Debug, $"Cleared Users"); _globalUsers.Cleared += (s, e) => _cacheLogger.Debug( $"Cleared Users");
} }
} }
@@ -280,7 +255,7 @@ namespace Discord
_token = response.Token; _token = response.Token;
_api.Token = response.Token; _api.Token = response.Token;
if (_config.LogLevel >= LogSeverity.Verbose) if (_config.LogLevel >= LogSeverity.Verbose)
_logger.Log(LogSeverity.Verbose, "Login successful, got token."); _logger.Verbose( "Login successful, got token.");
await BeginConnect(); await BeginConnect();
return response.Token; return response.Token;
@@ -308,7 +283,7 @@ namespace Discord
var gatewayResponse = await _api.Gateway().ConfigureAwait(false); var gatewayResponse = await _api.Gateway().ConfigureAwait(false);
string gateway = gatewayResponse.Url; string gateway = gatewayResponse.Url;
if (_config.LogLevel >= LogSeverity.Verbose) if (_config.LogLevel >= LogSeverity.Verbose)
_logger.Log(LogSeverity.Verbose, $"Websocket endpoint: {gateway}"); _logger.Verbose( $"Websocket endpoint: {gateway}");
_disconnectedEvent.Reset(); _disconnectedEvent.Reset();
@@ -827,7 +802,7 @@ namespace Discord
private void SendInitialLog() private void SendInitialLog()
{ {
if (_config.LogLevel >= LogSeverity.Verbose) if (_config.LogLevel >= LogSeverity.Verbose)
_logger.Log(LogSeverity.Verbose, $"Config: {JsonConvert.SerializeObject(_config)}"); _logger.Verbose( $"Config: {JsonConvert.SerializeObject(_config)}");
_sentInitialLog = true; _sentInitialLog = true;
} }

View File

@@ -1,4 +1,5 @@
using System; using Newtonsoft.Json;
using System;
using System.Text; using System.Text;
namespace Discord namespace Discord
@@ -48,6 +49,7 @@ namespace Discord
private string _appVersion = null; private string _appVersion = null;
/// <summary> User Agent string to use when connecting to Discord. </summary> /// <summary> User Agent string to use when connecting to Discord. </summary>
[JsonIgnore]
public string UserAgent { get { return _userAgent; } } public string UserAgent { get { return _userAgent; } }
private string _userAgent; private string _userAgent;
private void UpdateUserAgent() private void UpdateUserAgent()

View File

@@ -112,7 +112,7 @@ namespace Discord.Net.WebSockets
{ {
Host = payload.Url; Host = payload.Url;
if (_logger.Level >= LogSeverity.Info) if (_logger.Level >= LogSeverity.Info)
_logger.Log(LogSeverity.Info, "Redirected to " + payload.Url); _logger.Info("Redirected to " + payload.Url);
await Redirect(payload.Url).ConfigureAwait(false); await Redirect(payload.Url).ConfigureAwait(false);
} }
} }

View File

@@ -53,7 +53,7 @@ namespace Discord.Net.WebSockets
private void RaiseConnected() private void RaiseConnected()
{ {
if (_logger.Level >= LogSeverity.Info) if (_logger.Level >= LogSeverity.Info)
_logger.Log(LogSeverity.Info, "Connected"); _logger.Info( "Connected");
if (Connected != null) if (Connected != null)
Connected(this, EventArgs.Empty); Connected(this, EventArgs.Empty);
} }
@@ -61,7 +61,7 @@ namespace Discord.Net.WebSockets
private void RaiseDisconnected(bool wasUnexpected, Exception error) private void RaiseDisconnected(bool wasUnexpected, Exception error)
{ {
if (_logger.Level >= LogSeverity.Info) if (_logger.Level >= LogSeverity.Info)
_logger.Log(LogSeverity.Info, "Disconnected"); _logger.Info( "Disconnected");
if (Disconnected != null) if (Disconnected != null)
Disconnected(this, new DisconnectedEventArgs(wasUnexpected, error)); Disconnected(this, new DisconnectedEventArgs(wasUnexpected, error));
} }
@@ -165,8 +165,10 @@ namespace Discord.Net.WebSockets
} }
if (hasWriterLock) if (hasWriterLock)
{ {
CaptureError(ex ?? new Exception("Disconnect was requested."), isUnexpected); if (ex != null)
_logger.Log(LogSeverity.Error, "Error", ex);
CaptureError(ex ?? new Exception("Disconnect was requested."), isUnexpected);
_cancelTokenSource.Cancel(); _cancelTokenSource.Cancel();
if (_disconnectState == WebSocketState.Connecting) //_runTask was never made if (_disconnectState == WebSocketState.Connecting) //_runTask was never made
await Cleanup().ConfigureAwait(false); await Cleanup().ConfigureAwait(false);
@@ -236,7 +238,7 @@ namespace Discord.Net.WebSockets
protected virtual Task ProcessMessage(string json) protected virtual Task ProcessMessage(string json)
{ {
if (_logger.Level >= LogSeverity.Debug) if (_logger.Level >= LogSeverity.Debug)
_logger.Log(LogSeverity.Debug, $"In: {json}"); _logger.Debug( $"In: {json}");
return TaskHelper.CompletedTask; return TaskHelper.CompletedTask;
} }
@@ -244,7 +246,7 @@ namespace Discord.Net.WebSockets
{ {
string json = JsonConvert.SerializeObject(message); string json = JsonConvert.SerializeObject(message);
if (_logger.Level >= LogSeverity.Debug) if (_logger.Level >= LogSeverity.Debug)
_logger.Log(LogSeverity.Debug, $"Out: " + json); _logger.Debug( $"Out: " + json);
_engine.QueueMessage(json); _engine.QueueMessage(json);
} }

View File

@@ -56,6 +56,16 @@ namespace Discord
{ {
if (severity <= _service.Level) if (severity <= _service.Level)
_service.RaiseLogMessage(new LogMessageEventArgs(severity, _source, message, exception)); _service.RaiseLogMessage(new LogMessageEventArgs(severity, _source, message, exception));
} }
} public void Error(string message, Exception exception = null)
=> Log(LogSeverity.Error, message, exception);
public void Warning(string message, Exception exception = null)
=> Log(LogSeverity.Warning, message, exception);
public void Info(string message, Exception exception = null)
=> Log(LogSeverity.Info, message, exception);
public void Verbose(string message, Exception exception = null)
=> Log(LogSeverity.Verbose, message, exception);
public void Debug(string message, Exception exception = null)
=> Log(LogSeverity.Debug, message, exception);
}
} }