forked from nest-cloud/nestcloud
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlogger.module.ts
36 lines (31 loc) · 989 Bytes
/
logger.module.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { Module, DynamicModule, Global, Logger } from '@nestjs/common';
import { LOGGER } from '@nestcloud2/common';
import { TypeormLogger } from './typeorm-logger';
import { TYPEORM_LOGGER } from './logger.constants';
@Global()
@Module({})
export class LoggerModule {
private static logger: Logger;
static forRoot(): DynamicModule {
const loggerProvider = {
provide: LOGGER,
useFactory: (): Logger => {
if (!this.logger) {
this.logger = new Logger();
}
return this.logger;
},
};
const typeormLoggerProvider = {
provide: TYPEORM_LOGGER,
useFactory: () => {
return new TypeormLogger();
},
};
return {
module: LoggerModule,
providers: [loggerProvider, typeormLoggerProvider],
exports: [loggerProvider, typeormLoggerProvider],
};
}
}