From a347ff8eb6b8b7a7ebde15dfd92af70f28159970 Mon Sep 17 00:00:00 2001 From: Naomi Carrigan Date: Mon, 10 Feb 2025 20:56:50 -0800 Subject: [PATCH] feat: use our logging package --- package.json | 1 + pnpm-lock.yaml | 8 ++++++++ prod.env | 3 ++- src/index.ts | 4 ++-- src/server/serve.ts | 12 ++++++++---- src/utils/logHandler.ts | 31 ------------------------------- src/utils/logger.ts | 12 ++++++++++++ 7 files changed, 33 insertions(+), 38 deletions(-) delete mode 100644 src/utils/logHandler.ts create mode 100644 src/utils/logger.ts diff --git a/package.json b/package.json index 6c8bfad..75464d4 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ }, "dependencies": { "@anthropic-ai/sdk": "0.36.3", + "@nhcarrigan/logger": "1.0.0", "discord.js": "14.18.0", "fastify": "5.2.1", "winston": "3.17.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4088b55..9a457ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@anthropic-ai/sdk': specifier: 0.36.3 version: 0.36.3 + '@nhcarrigan/logger': + specifier: 1.0.0 + version: 1.0.0 discord.js: specifier: 14.18.0 version: 14.18.0 @@ -347,6 +350,9 @@ packages: typescript: '>=5' vitest: '>=2' + '@nhcarrigan/logger@1.0.0': + resolution: {integrity: sha512-2e19Bie+ZKb6yKPKjhawqsENkhHatYkvBAmFZx9eToOXdOca+CYi51tldRMtejg6e0+4hOOf2bo5zdBQKmH0dw==} + '@nhcarrigan/typescript-config@4.0.0': resolution: {integrity: sha512-969HVha7A/Sg77fuMwOm6p14a+7C5iE6g55OD71srqwKIgksQl+Ex/hAI/pyzTQFDQ/FBJbpnHlR4Ov25QV/rw==} engines: {node: '20', pnpm: '9'} @@ -2588,6 +2594,8 @@ snapshots: - eslint-import-resolver-webpack - supports-color + '@nhcarrigan/logger@1.0.0': {} + '@nhcarrigan/typescript-config@4.0.0(typescript@5.7.3)': dependencies: typescript: 5.7.3 diff --git a/prod.env b/prod.env index 859ad8d..7a38565 100644 --- a/prod.env +++ b/prod.env @@ -1,2 +1,3 @@ DISCORD_TOKEN="op://Environment Variables - Naomi/Cordelia Taryne/discord_token" -AI_TOKEN="op://Environment Variables - Naomi/Cordelia Taryne/ai_token" \ No newline at end of file +AI_TOKEN="op://Environment Variables - Naomi/Cordelia Taryne/ai_token" +LOG_TOKEN="op://Environment Variables - Naomi/Alert Server/api_auth" diff --git a/src/index.ts b/src/index.ts index 22396d5..498abf1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,7 +12,7 @@ import { proofread } from "./modules/proofread.js"; import { query } from "./modules/query.js"; import { summarise } from "./modules/summarise.js"; import { instantiateServer } from "./server/serve.js"; -import { logHandler } from "./utils/logHandler.js"; +import { logger } from "./utils/logger.js"; const commands: Record< string, @@ -42,7 +42,7 @@ client.on(Events.InteractionCreate, (interaction) => { }); client.on(Events.ClientReady, () => { - logHandler.info("Bot is ready."); + void logger.log("debug", "Bot is ready."); }); instantiateServer(); diff --git a/src/server/serve.ts b/src/server/serve.ts index 9e63e7b..d72e477 100644 --- a/src/server/serve.ts +++ b/src/server/serve.ts @@ -5,7 +5,7 @@ */ import fastify from "fastify"; -import { logHandler } from "../utils/logHandler.js"; +import { logger } from "../utils/logger.js"; const html = ` @@ -60,12 +60,16 @@ export const instantiateServer = (): void => { server.listen({ port: 5002 }, (error) => { if (error) { - logHandler.error(error); + void logger.error("instantiate server", error); return; } - logHandler.info("Server listening on port 5002."); + void logger.log("debug", "Server listening on port 5002."); }); } catch (error) { - logHandler.error(error); + if (error instanceof Error) { + void logger.error("instantiate server", error); + return; + } + void logger.error("instantiate server", new Error("Unknown error")); } }; diff --git a/src/utils/logHandler.ts b/src/utils/logHandler.ts deleted file mode 100644 index 88d9274..0000000 --- a/src/utils/logHandler.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * @copyright nhcarrigan - * @license Naomi's Public License - * @author Naomi Carrigan - */ -import { createLogger, format, transports, config } from "winston"; - -const { combine, timestamp, colorize, printf } = format; - -/** - * Standard log handler, using winston to wrap and format - * messages. Call with `logHandler.log(level, message)`. - * @param {string} level - The log level to use. - * @param {string} message - The message to log. - */ -export const logHandler = createLogger({ - exitOnError: false, - format: combine( - timestamp({ - format: "YYYY-MM-DD HH:mm:ss", - }), - colorize(), - printf((info) => { - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- Winston properties... - return `${info.level}: ${info.timestamp}: ${info.message}`; - }), - ), - level: "silly", - levels: config.npm.levels, - transports: [ new transports.Console() ], -}); diff --git a/src/utils/logger.ts b/src/utils/logger.ts new file mode 100644 index 0000000..b79db16 --- /dev/null +++ b/src/utils/logger.ts @@ -0,0 +1,12 @@ +/** + * @copyright nhcarrigan + * @license Naomi's Public License + * @author Naomi Carrigan + */ + +import { Logger } from "@nhcarrigan/logger"; + +export const logger = new Logger( + "Cordelia Taryne", + process.env.LOG_TOKEN ?? "", +);