From 275502143c16ced103cfb571259c8c06acc4878f Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Mon, 3 Mar 2025 17:31:54 -0600 Subject: [PATCH] feat(server): created a logger to catch em all --- server/index.ts | 3 +- server/services/logger/logger.ts | 52 ++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 server/services/logger/logger.ts diff --git a/server/index.ts b/server/index.ts index 06e9374..f695686 100644 --- a/server/index.ts +++ b/server/index.ts @@ -3,6 +3,7 @@ import {OpenAPIHono} from "@hono/zod-openapi"; import {serveStatic} from "@hono/node-server/serve-static"; import {logger} from "hono/logger"; import {cors} from "hono/cors"; +import {log} from "./services/logger/logger.js"; // custom routes import scalar from "./services/general/route/scalar.js"; @@ -63,7 +64,7 @@ serve( port: Number(process.env.VITE_SERVER_PORT), }, (info) => { - console.log(`Server is running on http://localhost:${info.port}`); + log.info({username: "LST-SYSTEM"}, `Server is running on http://localhost:${info.port}`); } ); diff --git a/server/services/logger/logger.ts b/server/services/logger/logger.ts new file mode 100644 index 0000000..5c55c56 --- /dev/null +++ b/server/services/logger/logger.ts @@ -0,0 +1,52 @@ +import {pino, type Logger} from "pino"; + +export let logLevel = "info"; + +const transport = pino.transport({ + targets: [ + { + target: "pino-pretty", + options: { + colorize: true, + // customPrettifiers: { + // time: (timestamp) => `🕰 ${timestamp}`, + // }, + destination: process.stdout.fd, + }, + }, + { + target: "pino-pretty", + options: { + colorize: false, + destination: "./logs/logs.log", + mkdir: true, + }, + }, + ], +}); + +export const log = pino( + { + level: process.env.LOG_LEVEL || logLevel, + // formatters: { + // level: (label) => { + // return {level: label.toUpperCase()}; + // }, + // }, + customLevels: {death: 70}, + // removes data from the logs that we dont want to be shown :D + redact: {paths: ["email", "password"], remove: true}, + }, + transport +); + +// setTimeout(() => { +// const fun = () => { +// throw Error("Just an error"); +// }; +// try { +// fun(); +// } catch (error) { +// log.error(error, "Somethingbad"); +// } +// });