diff --git a/docker-compose.yml b/docker-compose.yml index 6867a14..4964458 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: - '3050:3000' container_name: clipperia-api environment: - NODE_ENV: production + NODE_ENV: development KEYCLOAK_URL: http://keycloak:8080 DATABASE_URL: postgresql://leolitas:L@l321321321@postgres:5432/clipperia?schema=public networks: diff --git a/src/app.module.ts b/src/app.module.ts index c838706..7dfb2dd 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,5 +1,6 @@ import { Module, MiddlewareConsumer } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; +import { LoggerModule } from 'nestjs-pino'; import { PrismaModule } from './prisma/prisma.module'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @@ -13,7 +14,20 @@ import { AuthController } from './auth/auth.controller'; @Module({ imports: [ - ConfigModule.forRoot(), + ConfigModule.forRoot({ + isGlobal: true, + }), + LoggerModule.forRootAsync({ + useFactory: () => ({ + pinoHttp: { + level: process.env.NODE_ENV === 'production' ? 'info' : 'debug', + transport: + process.env.NODE_ENV !== 'production' + ? { target: 'pino-pretty' } + : undefined, + }, + }), + }), PrismaModule, VideosModule, AuthModule, diff --git a/src/main.ts b/src/main.ts index be94fdf..1e9ba33 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,10 +8,18 @@ import { AppModule } from './app.module'; import { Logger as PinoLogger } from 'nestjs-pino'; async function bootstrap() { - const app = await NestFactory.create(AppModule, { bufferLogs: true }); - const pinoLogger = app.get(PinoLogger); - app.useLogger(pinoLogger); - const logger = new Logger('Bootstrap'); + // Create app with default logger first + const app = await NestFactory.create(AppModule, { + logger: ['error', 'warn', 'log', 'debug', 'verbose'], + }); + + // Then set up Pino logger + const pinoLogger = app.get(PinoLogger, { strict: false }); + if (pinoLogger) { + app.useLogger(pinoLogger); + } + + const logger = app.get(Logger); const reflector = app.get(Reflector); // Global pipes and interceptors @@ -48,8 +56,8 @@ async function bootstrap() { } } -bootstrap().catch((err) => { - const logger = new Logger('Bootstrap'); - logger.error('Failed to start application', err); +bootstrap().catch((error) => { + // Use console.error here since the logger might not be available + console.error('Failed to start application', error); process.exit(1); });