From f19a8327258de14d6a1ed740d5880689d84121fc Mon Sep 17 00:00:00 2001 From: stijndcl Date: Thu, 22 Sep 2022 16:58:48 +0200 Subject: [PATCH] Send logs in an embed --- didier/data/embeds/logging_embed.py | 21 +++++++++++++++++++++ didier/didier.py | 8 +++++--- 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 didier/data/embeds/logging_embed.py diff --git a/didier/data/embeds/logging_embed.py b/didier/data/embeds/logging_embed.py new file mode 100644 index 0000000..3df5a48 --- /dev/null +++ b/didier/data/embeds/logging_embed.py @@ -0,0 +1,21 @@ +import logging + +import discord + +__all__ = ["create_logging_embed"] + + +def create_logging_embed(level: int, message: str) -> discord.Embed: + """Create an embed to send to the logging channel""" + colours = { + logging.DEBUG: discord.Colour.light_gray(), + logging.ERROR: discord.Colour.red(), + logging.INFO: discord.Colour.blue(), + logging.WARNING: discord.Colour.yellow(), + } + + colour = colours.get(level, discord.Colour.red()) + embed = discord.Embed(colour=colour, title="Logging") + embed.description = message + + return embed diff --git a/didier/didier.py b/didier/didier.py index 249e5b2..050def6 100644 --- a/didier/didier.py +++ b/didier/didier.py @@ -16,6 +16,7 @@ from database.crud import command_stats, custom_commands from database.engine import DBSession from database.utils.caches import CacheManager from didier.data.embeds.error_embed import create_error_embed +from didier.data.embeds.logging_embed import create_logging_embed from didier.data.embeds.schedules import Schedule, parse_schedule from didier.exceptions import HTTPException, NoMatch from didier.utils.discord.prefix import get_prefix @@ -181,15 +182,16 @@ class Didier(commands.Bot): async def _log(self, level: int, message: str, log_to_discord: bool = True): """Log a message to the logging file, and optionally to the configured channel""" methods = { + logging.DEBUG: logger.debug, logging.ERROR: logger.error, + logging.INFO: logger.info, logging.WARNING: logger.warning, } methods.get(level, logger.error)(message) if log_to_discord: - # TODO pretty embed - # different colours per level? - await self.error_channel.send(message) + embed = create_logging_embed(level, message) + await self.error_channel.send(embed=embed) async def log_error(self, message: str, log_to_discord: bool = True): """Log an error message"""