Added a log level droplist

This commit is contained in:
Brett Hewitson 2021-12-16 23:08:31 +10:00
parent 708031dcbb
commit 430bfe7bbb
21 changed files with 224 additions and 59 deletions

View file

@ -0,0 +1,25 @@
using Discord;
using System;
namespace ServerManagerTool.DiscordBot.Enums
{
public enum LogLevel
{
Critical = 0,
Error = 1,
Warning = 2,
Info = 3,
Verbose = 4,
Debug = 5
}
public class LogLevelHelper
{
public static LogSeverity GetLogSeverity(LogLevel logLevel)
{
if (Enum.TryParse(logLevel.ToString(), out LogSeverity logSeverity))
return logSeverity;
return LogSeverity.Info;
}
}
}

View file

@ -1,4 +1,5 @@
using ServerManagerTool.DiscordBot.Delegates;
using ServerManagerTool.DiscordBot.Enums;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@ -9,6 +10,6 @@ namespace ServerManagerTool.DiscordBot.Interfaces
{
CancellationToken Token { get; }
Task StartAsync(string discordToken, string commandPrefix, string dataDirectory, IEnumerable<string> botWhitelist, HandleCommandDelegate handleCommandCallback, HandleTranslationDelegate handleTranslationCallback, CancellationToken token);
Task StartAsync(LogLevel logLevel, string discordToken, string commandPrefix, string dataDirectory, IEnumerable<string> botWhitelist, HandleCommandDelegate handleCommandCallback, HandleTranslationDelegate handleTranslationCallback, CancellationToken token);
}
}

View file

@ -6,6 +6,7 @@ using Discord.WebSocket;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using ServerManagerTool.DiscordBot.Delegates;
using ServerManagerTool.DiscordBot.Enums;
using ServerManagerTool.DiscordBot.Interfaces;
using ServerManagerTool.DiscordBot.Models;
using ServerManagerTool.DiscordBot.Services;
@ -28,7 +29,7 @@ namespace ServerManagerTool.DiscordBot
public CancellationToken Token { get; private set; }
public bool Started { get; private set; }
public async Task StartAsync(string discordToken, string commandPrefix, string dataDirectory, IEnumerable<string> botWhitelist, HandleCommandDelegate handleCommandCallback, HandleTranslationDelegate handleTranslationCallback, CancellationToken token)
public async Task StartAsync(LogLevel logLevel, string discordToken, string commandPrefix, string dataDirectory, IEnumerable<string> botWhitelist, HandleCommandDelegate handleCommandCallback, HandleTranslationDelegate handleTranslationCallback, CancellationToken token)
{
if (Started)
{
@ -43,11 +44,6 @@ namespace ServerManagerTool.DiscordBot
Token = token;
//if (commandPrefix.Any(c => !char.IsLetterOrDigit(c)))
//{
// throw new Exception("#DiscordBot_InvalidPrefixError");
//}
var settings = new Dictionary<string, string>
{
{ "DiscordSettings:Token", discordToken },
@ -62,12 +58,7 @@ namespace ServerManagerTool.DiscordBot
var socketConfig = new DiscordSocketConfig
{
//#if DEBUG
LogLevel = LogSeverity.Verbose,
//#else
// LogLevel = LogSeverity.Info,
//#endif
// Tell Discord.Net to cache 1000 messages per channel
LogLevel = LogLevelHelper.GetLogSeverity(logLevel),
MessageCacheSize = 1000,
};
if (Environment.OSVersion.Version < new Version(6, 2))
@ -80,11 +71,7 @@ namespace ServerManagerTool.DiscordBot
{
// Force all commands to run async
DefaultRunMode = RunMode.Async,
//#if DEBUG
LogLevel = LogSeverity.Verbose,
//#else
// LogLevel = LogSeverity.Info,
//#endif
LogLevel = LogLevelHelper.GetLogSeverity(logLevel),
};
var discordBotWhitelistConfig = new DiscordBotWhitelistConfig