diff --git a/docs/guides/concepts/samples/logging.cs b/docs/guides/concepts/samples/logging.cs index 2419452f0..982fb11b6 100644 --- a/docs/guides/concepts/samples/logging.cs +++ b/docs/guides/concepts/samples/logging.cs @@ -1,29 +1,24 @@ using Discord; using Discord.WebSocket; -public class Program +public class LoggingService { - private DiscordSocketClient _client; - static void Main(string[] args) => new Program().MainAsync().GetAwaiter().GetResult(); - - public async Task MainAsync() + public LoggingService(DiscordSocketClient client, CommandService command) { - _client = new DiscordSocketClient(new DiscordSocketConfig - { - LogLevel = LogSeverity.Info - }); - - _client.Log += Log; - - await _client.LoginAsync(TokenType.Bot, Environment.GetEnvironmentVariable("DiscordToken")); - await _client.StartAsync(); - - await Task.Delay(-1); + client.Log += LogAsync; + command.Log += LogAsync; } - - private Task Log(LogMessage message) + private Task LogAsync(LogMessage message) { - Console.WriteLine(message.ToString()); + if (message.Exception is CommandException cmdException) + { + Console.WriteLine($"[Command/{message.Severity}] {cmdException.Command.Aliases.First()}" + + $" failed to execute in {cmdException.Context.Channel}."); + Console.WriteLine(cmdException); + } + else + Console.WriteLine($"[General/{message.Severity}] {message}"); + return Task.CompletedTask; } } \ No newline at end of file