diff --git a/packages/discord-ticket-api/src/server.ts b/packages/discord-ticket-api/src/server.ts index c9d665fec7..1af6fe830e 100644 --- a/packages/discord-ticket-api/src/server.ts +++ b/packages/discord-ticket-api/src/server.ts @@ -1,8 +1,8 @@ -import Fastify from "fastify"; +import Fastify, { FastifyBaseLogger } from "fastify"; import helmet from "@fastify/helmet"; import cors from "@fastify/cors"; import sensible from "@fastify/sensible"; -import { createPinoConfig } from "@uma/logger"; +import { createPinoLogger } from "@uma/logger"; import { loadEnv } from "./env.js"; import { createQueue } from "./queue.js"; import { TicketQueueService } from "./services/TicketService.js"; @@ -10,12 +10,11 @@ import { ticketsRoutes } from "./routes/tickets.js"; export async function buildServer(): Promise<{ app: ReturnType; start: () => Promise }> { const env = loadEnv(); - const app = Fastify({ - logger: createPinoConfig({ - level: process.env.LOG_LEVEL || "info", - botIdentifier: process.env.BOT_IDENTIFIER || "ticketing-api", - }), - }); + const logger = createPinoLogger({ + level: process.env.LOG_LEVEL || "info", + botIdentifier: process.env.BOT_IDENTIFIER || "ticketing-api", + }) as FastifyBaseLogger; + const app = Fastify({ loggerInstance: logger }); await app.register(helmet); await app.register(cors, { origin: true, credentials: true }); diff --git a/packages/logger/src/index.ts b/packages/logger/src/index.ts index 2891c19524..35f1d8a3d5 100644 --- a/packages/logger/src/index.ts +++ b/packages/logger/src/index.ts @@ -5,4 +5,4 @@ export * from "./logger/Logger"; export * from "./logger/SpyTransport"; export * from "./logger/ConsoleTransport"; export * from "./logger/Formatters"; -export * from "./pinoLogger"; +export * from "./pinoLogger/Logger"; diff --git a/packages/logger/src/pinoLogger.ts b/packages/logger/src/pinoLogger/Logger.ts similarity index 80% rename from packages/logger/src/pinoLogger.ts rename to packages/logger/src/pinoLogger/Logger.ts index 40837d8d51..34a89b7947 100644 --- a/packages/logger/src/pinoLogger.ts +++ b/packages/logger/src/pinoLogger/Logger.ts @@ -1,7 +1,8 @@ import { pino, LevelWithSilentOrString, Logger as PinoLogger, LoggerOptions as PinoLoggerOptions } from "pino"; import { createGcpLoggingPinoConfig } from "@google-cloud/pino-logging-gcp-config"; -import { noBotId } from "./constants"; -import { generateRandomRunId } from "./logger/Logger"; +import { noBotId } from "../constants"; +import { generateRandomRunId } from "../logger/Logger"; +import { createPinoTransports } from "./Transports"; export type { PinoLogger }; export type { PinoLoggerOptions }; @@ -15,9 +16,8 @@ type CustomPinoLoggerOptions = { export function createPinoLogger({ botIdentifier = process.env.BOT_IDENTIFIER || noBotId, runIdentifier = process.env.RUN_IDENTIFIER || generateRandomRunId(), - level = "info", }: Partial = {}): PinoLogger { - return pino(createPinoConfig({ botIdentifier, runIdentifier, level })); + return pino(createPinoConfig({ botIdentifier, runIdentifier }), createPinoTransports()); } export function createPinoConfig({ diff --git a/packages/logger/src/pinoLogger/Transports.ts b/packages/logger/src/pinoLogger/Transports.ts new file mode 100644 index 0000000000..adefe3b9cd --- /dev/null +++ b/packages/logger/src/pinoLogger/Transports.ts @@ -0,0 +1,11 @@ +import { transport } from "pino"; + +export function createPinoTransports(): ReturnType { + const level = "error"; + return transport({ + targets: [ + // stdout (GCP Logging) + { target: "pino/file", level, options: { destination: 1 } }, + ], + }); +}