diff --git a/.gitignore b/.gitignore index ed2a267..e110325 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,8 @@ build/ # 日志 *.log +*.log.gz +logs/ pnpm-debug.log* # 操作系统 diff --git a/package.json b/package.json index eeb6e1b..af81d25 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,11 @@ "@nestjs/core": "^10.4.20", "@nestjs/platform-express": "^10.4.20", "@nestjs/platform-socket.io": "^10.4.20", + "@nestjs/schedule": "^4.1.2", "@nestjs/websockets": "^10.4.20", "nestjs-pino": "^4.5.0", "pino": "^10.1.0", + "reflect-metadata": "^0.1.14", "rxjs": "^7.8.2" }, diff --git a/src/core/utils/logger/logger.module.ts b/src/core/utils/logger/logger.module.ts index 3dc5acd..8195333 100644 --- a/src/core/utils/logger/logger.module.ts +++ b/src/core/utils/logger/logger.module.ts @@ -18,9 +18,12 @@ */ import { Module } from '@nestjs/common'; -import { ConfigModule } from '@nestjs/config'; +import { ConfigModule, ConfigService } from '@nestjs/config'; import { LoggerModule as PinoLoggerModule } from 'nestjs-pino'; +import { ScheduleModule } from '@nestjs/schedule'; import { AppLoggerService } from './logger.service'; +import { LoggerConfigFactory } from './logger.config'; +import { LogManagementService } from './log-management.service'; /** * 日志模块类 @@ -43,39 +46,16 @@ import { AppLoggerService } from './logger.service'; @Module({ imports: [ ConfigModule, + ScheduleModule.forRoot(), PinoLoggerModule.forRootAsync({ imports: [ConfigModule], - useFactory: () => ({ - pinoHttp: { - // 根据环境设置日志级别 - level: process.env.NODE_ENV === 'production' ? 'info' : 'debug', - - // 开发环境使用美化输出 - transport: process.env.NODE_ENV !== 'production' ? { - target: 'pino-pretty', - options: { - colorize: true, - translateTime: 'SYS:standard', - ignore: 'pid,hostname', - }, - } : undefined, - - // 自定义序列化器,过滤敏感信息 - serializers: { - req: (req) => ({ - method: req.method, - url: req.url, - headers: req.headers, - }), - res: (res) => ({ - statusCode: res.statusCode, - }), - }, - }, - }), + useFactory: (configService: ConfigService) => { + return LoggerConfigFactory.createLoggerConfig(configService); + }, + inject: [ConfigService], }), ], - providers: [AppLoggerService], - exports: [AppLoggerService], + providers: [AppLoggerService, LogManagementService], + exports: [AppLoggerService, LogManagementService], }) export class LoggerModule {}