From fe6bcd43ffac7cdc3c4e93fa54eb1e5153056cd5 Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Wed, 7 Aug 2024 14:12:40 -0400 Subject: [PATCH] chore: better logging --- src/discord/events.ts | 10 ++++---- src/repositories/discord.repository.ts | 32 +++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/discord/events.ts b/src/discord/events.ts index 17253e1..cd38716 100644 --- a/src/discord/events.ts +++ b/src/discord/events.ts @@ -1,6 +1,6 @@ import { Injectable, Logger } from '@nestjs/common'; import { MessageFlags } from 'discord.js'; -import { ArgsOf, Discord, On, Once } from 'discordx'; +import { ArgsOf, Discord, On, Once, RestArgsOf } from 'discordx'; import _ from 'lodash'; import { DiscordService } from 'src/services/discord.service'; @@ -19,6 +19,11 @@ export class DiscordEvents { constructor(private service: DiscordService) {} + @On.rest({ event: 'restDebug' }) + onDebug([message]: RestArgsOf<'restDebug'>) { + this.logger.debug(message); + } + @Once({ event: 'ready' }) async onReady() { await this.service.onReady(); @@ -31,9 +36,6 @@ export class DiscordEvents { @On({ event: 'messageCreate' }) async onMessageCreate([message]: ArgsOf<'messageCreate'>) { - this.logger.verbose( - `DiscordBot.onMessageCreate [${message.author.username}] ${shorten(message.content)} ${message.embeds.length} - embed(s)`, - ); if (message.author.bot) { return; } diff --git a/src/repositories/discord.repository.ts b/src/repositories/discord.repository.ts index 36a39a1..6eda4db 100644 --- a/src/repositories/discord.repository.ts +++ b/src/repositories/discord.repository.ts @@ -1,7 +1,30 @@ +import { Logger } from '@nestjs/common'; import { IntentsBitField, MessageCreateOptions, Partials } from 'discord.js'; import { Client } from 'discordx'; import { DiscordChannel, IDiscordInterface } from 'src/interfaces/discord.interface'; +class DiscordLogger extends Logger { + constructor() { + super('DiscordBot'); + } + + info(...messages: string[]) { + super.debug(messages.join('\n')); + } + + log(...messages: string[]) { + super.log(messages.join('\n')); + } + + warn(...messages: string[]) { + super.warn(messages.join('\n')); + } + + error(...messages: string[]) { + super.error(messages.join('\n')); + } +} + const bot = new Client({ // Discord intents intents: [ @@ -15,6 +38,8 @@ const bot = new Client({ // Debug logs are disabled in silent mode silent: false, + logger: new DiscordLogger(), + // Configuration for @SimpleCommand simpleCommand: { prefix: '/', @@ -24,9 +49,14 @@ const bot = new Client({ }); export class DiscordRepository implements IDiscordInterface { + private logger = new Logger(DiscordRepository.name); + constructor() { bot - .once('ready', async () => await bot.initApplicationCommands()) + .once('ready', async () => { + // await bot.clearApplicationCommands(); + await bot.initApplicationCommands(); + }) .on('interactionCreate', (interaction) => bot.executeInteraction(interaction) as Promise) .on('messageCreate', (message) => bot.executeCommand(message) as Promise); }