From 027e1d7c762b203a690b3f02bb15aa6e56621d26 Mon Sep 17 00:00:00 2001 From: Jack Andrews Date: Fri, 8 Nov 2024 21:46:06 +0000 Subject: [PATCH] chore: save logging to file --- apps/api/.gitignore | 2 + apps/api/package.json | 1 + apps/api/src/controllers/config.ts | 10 +---- apps/api/src/main.ts | 16 +++++++- yarn.lock | 63 ++++++++++++++++++++++++++++++ 5 files changed, 81 insertions(+), 11 deletions(-) diff --git a/apps/api/.gitignore b/apps/api/.gitignore index 51ea78824..b7d4a37b7 100644 --- a/apps/api/.gitignore +++ b/apps/api/.gitignore @@ -104,3 +104,5 @@ dist .tern-port /uploads + +logs.log \ No newline at end of file diff --git a/apps/api/package.json b/apps/api/package.json index 2f5ba508a..9c1bbad7e 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -55,6 +55,7 @@ "mailparser": "^3.6.5", "nodemailer": "^6.9.7", "openid-client": "^5.7.0", + "pino": "^9.5.0", "posthog-node": "^3.1.3", "prisma": "5.6.0", "samlify": "^2.8.11", diff --git a/apps/api/src/controllers/config.ts b/apps/api/src/controllers/config.ts index f9dafbe95..f9cbc825f 100644 --- a/apps/api/src/controllers/config.ts +++ b/apps/api/src/controllers/config.ts @@ -211,14 +211,7 @@ export function configRoutes(fastify: FastifyInstance) { }, }); - if (config === null) { - reply.send({ - success: true, - active: false, - }); - } - - if (config?.active) { + if (config && config?.active) { const provider = await createTransportProvider(); await new Promise((resolve, reject) => { @@ -247,7 +240,6 @@ export function configRoutes(fastify: FastifyInstance) { reply.send({ success: true, active: false, - email: config, }); } } diff --git a/apps/api/src/main.ts b/apps/api/src/main.ts index d52d546cf..be66fe11b 100644 --- a/apps/api/src/main.ts +++ b/apps/api/src/main.ts @@ -2,6 +2,7 @@ import cors from "@fastify/cors"; import "dotenv/config"; import Fastify, { FastifyInstance } from "fastify"; import multer from "fastify-multer"; +import fs from "fs"; import { exec } from "child_process"; import { track } from "./lib/hog"; @@ -9,12 +10,23 @@ import { getEmails } from "./lib/imap"; import { prisma } from "./prisma"; import { registerRoutes } from "./routes"; +// Ensure the directory exists +const logFilePath = './logs.log'; // Update this path to a writable location + +// Create a writable stream +const logStream = fs.createWriteStream(logFilePath, { flags: 'a' }); + +// Initialize Fastify with logger const server: FastifyInstance = Fastify({ - logger: true, + logger: { + stream: logStream, // Use the writable stream + }, + disableRequestLogging: true, + trustProxy: true, }); - server.register(cors, { origin: "*", + methods: ["GET", "POST", "PUT", "DELETE"], allowedHeaders: ["Content-Type", "Authorization", "Accept"], }); diff --git a/yarn.lock b/yarn.lock index 1218843d7..89fa73266 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5929,6 +5929,7 @@ __metadata: mailparser: "npm:^3.6.5" nodemailer: "npm:^6.9.7" openid-client: "npm:^5.7.0" + pino: "npm:^9.5.0" posthog-node: "npm:^3.1.3" prisma: "npm:5.6.0" samlify: "npm:^2.8.11" @@ -14447,6 +14448,15 @@ __metadata: languageName: node linkType: hard +"pino-abstract-transport@npm:^2.0.0": + version: 2.0.0 + resolution: "pino-abstract-transport@npm:2.0.0" + dependencies: + split2: "npm:^4.0.0" + checksum: 10c0/02c05b8f2ffce0d7c774c8e588f61e8b77de8ccb5f8125afd4a7325c9ea0e6af7fb78168999657712ae843e4462bb70ac550dfd6284f930ee57f17f486f25a9f + languageName: node + linkType: hard + "pino-std-serializers@npm:^6.0.0": version: 6.2.2 resolution: "pino-std-serializers@npm:6.2.2" @@ -14454,6 +14464,13 @@ __metadata: languageName: node linkType: hard +"pino-std-serializers@npm:^7.0.0": + version: 7.0.0 + resolution: "pino-std-serializers@npm:7.0.0" + checksum: 10c0/73e694d542e8de94445a03a98396cf383306de41fd75ecc07085d57ed7a57896198508a0dec6eefad8d701044af21eb27253ccc352586a03cf0d4a0bd25b4133 + languageName: node + linkType: hard + "pino@npm:^8.12.0": version: 8.21.0 resolution: "pino@npm:8.21.0" @@ -14475,6 +14492,27 @@ __metadata: languageName: node linkType: hard +"pino@npm:^9.5.0": + version: 9.5.0 + resolution: "pino@npm:9.5.0" + dependencies: + atomic-sleep: "npm:^1.0.0" + fast-redact: "npm:^3.1.1" + on-exit-leak-free: "npm:^2.1.0" + pino-abstract-transport: "npm:^2.0.0" + pino-std-serializers: "npm:^7.0.0" + process-warning: "npm:^4.0.0" + quick-format-unescaped: "npm:^4.0.3" + real-require: "npm:^0.2.0" + safe-stable-stringify: "npm:^2.3.1" + sonic-boom: "npm:^4.0.1" + thread-stream: "npm:^3.0.0" + bin: + pino: bin.js + checksum: 10c0/b06590c5f4da43df59905af1aac344432b43154c4c1569ebea168e7ae7fd0a4181ccabb769a6568cf3e781e1d1b9df13d65b3603e25ebb05539bcb02ea04215e + languageName: node + linkType: hard + "pirates@npm:^4.0.1": version: 4.0.6 resolution: "pirates@npm:4.0.6" @@ -14718,6 +14756,13 @@ __metadata: languageName: node linkType: hard +"process-warning@npm:^4.0.0": + version: 4.0.0 + resolution: "process-warning@npm:4.0.0" + checksum: 10c0/5312a72b69d37a1b82ad03f3dfa0090dab3804a8fd995d06c28e3c002852bd82f5584217d9f4a3f197892bb2afc22d57e2c662c7e906b5abb48c0380c7b0880d + languageName: node + linkType: hard + "process@npm:^0.11.10": version: 0.11.10 resolution: "process@npm:0.11.10" @@ -16468,6 +16513,15 @@ __metadata: languageName: node linkType: hard +"sonic-boom@npm:^4.0.1": + version: 4.2.0 + resolution: "sonic-boom@npm:4.2.0" + dependencies: + atomic-sleep: "npm:^1.0.0" + checksum: 10c0/ae897e6c2cd6d3cb7cdcf608bc182393b19c61c9413a85ce33ffd25891485589f39bece0db1de24381d0a38fc03d08c9862ded0c60f184f1b852f51f97af9684 + languageName: node + linkType: hard + "source-list-map@npm:^2.0.0": version: 2.0.1 resolution: "source-list-map@npm:2.0.1" @@ -17090,6 +17144,15 @@ __metadata: languageName: node linkType: hard +"thread-stream@npm:^3.0.0": + version: 3.1.0 + resolution: "thread-stream@npm:3.1.0" + dependencies: + real-require: "npm:^0.2.0" + checksum: 10c0/c36118379940b77a6ef3e6f4d5dd31e97b8210c3f7b9a54eb8fe6358ab173f6d0acfaf69b9c3db024b948c0c5fd2a7df93e2e49151af02076b35ada3205ec9a6 + languageName: node + linkType: hard + "tiny-lru@npm:^11.0.1": version: 11.2.11 resolution: "tiny-lru@npm:11.2.11"