From 9bf95897d140bcd7cb9d5c09d5acd6355cee3dfb Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Wed, 10 Nov 2021 04:56:11 +0000 Subject: [PATCH] Add Log Snippets --- server/src/lib/logger/discord-transport.ts | 28 ++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/server/src/lib/logger/discord-transport.ts b/server/src/lib/logger/discord-transport.ts index dc2983676..a08330887 100644 --- a/server/src/lib/logger/discord-transport.ts +++ b/server/src/lib/logger/discord-transport.ts @@ -13,8 +13,8 @@ interface DiscordTransportOptions extends TransportStreamOptions { } interface LogLevelCountState { - warn: integer; - error: integer; + warn: string[]; + error: string[]; } /** @@ -31,8 +31,8 @@ export default class DiscordTransport extends Transport { private initalised: Promise; private bucketData: LogLevelCountState = { - warn: 0, - error: 0, + warn: [], + error: [], }; private isBucketing = false; @@ -58,8 +58,8 @@ export default class DiscordTransport extends Transport { private resetBucketData() { this.bucketData = { - warn: 0, - error: 0, + warn: [], + error: [], }; } @@ -91,7 +91,7 @@ export default class DiscordTransport extends Transport { return; } - this.bucketData[info.level as "warn" | "error"] += 1; + this.bucketData[info.level as "warn" | "error"].push(info.message); if (!this.isBucketing) { this.isBucketing = true; @@ -117,14 +117,22 @@ export default class DiscordTransport extends Transport { } } + const logSnippet = [ + ...this.bucketData.error.map((e) => `[ERROR] ${e}`), + ...this.bucketData.warn.map((e) => `[WARN] ${e}`), + ].join("\n"); + const postBody = { - content: "", + content: ` + \`\`\` + ${logSnippet.length > 1500 ? `${logSnippet.slice(0, 1500 - 3)}...` : logSnippet} + \`\`\``, embeds: [ { title: `${TachiConfig.NAME} Log Summary`, fields: Object.entries(this.bucketData).map(([k, v]) => ({ - name: k[0].toUpperCase() + k.slice(1) + (v === 1 ? "" : "s"), - value: v.toString(), + name: k[0].toUpperCase() + k.slice(1) + (v.length === 1 ? "" : "s"), + value: v.length.toString(), })), description: `Log summary for ${this.bucketStart?.toUTCString()} to ${new Date().toUTCString()}.`, color,