@@ -2,14 +2,26 @@ import { LogEvent } from '@/models';
22import { auth } from '@clerk/nextjs/server' ;
33import { headers } from 'next/headers' ;
44import winston , { format } from 'winston' ;
5+ import Transport from 'winston-transport' ;
56import { Logger , LogLevel } from './logger' ;
67import { PrismaTransport } from './prisma-transport' ;
8+ import { RedisTransport } from './redis-transport' ;
79const { combine, timestamp, json } = format ;
810
911export class WinstonLogger implements Logger {
1012 private readonly winstonLogger : winston . Logger ;
1113
1214 constructor ( ) {
15+ const transports : Transport [ ] = [
16+ new winston . transports . Console ( { level : 'info' } ) ,
17+ ] ;
18+
19+ if ( process . env . LOGGING_DB_TYPE ?. toUpperCase ( ) === 'POSTGRES' ) {
20+ transports . push ( new PrismaTransport ( { level : 'debug' } ) ) ;
21+ } else if ( process . env . LOGGING_DB_TYPE ?. toUpperCase ( ) === 'REDIS' ) {
22+ transports . push ( new RedisTransport ( { level : 'debug' } ) ) ;
23+ }
24+
1325 this . winstonLogger = winston . createLogger ( {
1426 level : 'debug' ,
1527 format : combine (
@@ -22,10 +34,7 @@ export class WinstonLogger implements Logger {
2234 timestamp ( ) ,
2335 json ( ) ,
2436 ) ,
25- transports : [
26- new winston . transports . Console ( { level : 'info' } ) ,
27- new PrismaTransport ( { level : 'debug' } ) ,
28- ] ,
37+ transports,
2938 } ) ;
3039 }
3140
0 commit comments