|
@@ -1,4 +1,5 @@
|
|
|
-import { Module } from '@nestjs/common';
|
|
|
+import pino from 'pino';
|
|
|
+import { Module, RequestMethod, MiddlewareConsumer } from '@nestjs/common';
|
|
|
import { SharedModule } from './shared/shared.module';
|
|
|
import { ConfigModule } from '@nestjs/config';
|
|
|
import { UserModule } from './modules/user/user.module';
|
|
@@ -9,9 +10,20 @@ import { ArticleModule } from './modules/article/article.module';
|
|
|
import { CategoryModule } from './modules/category/category.module';
|
|
|
import { LoggerModule } from 'nestjs-pino';
|
|
|
import { MenuModule } from './modules/menu/menu.module';
|
|
|
+import { HttpLoggerMiddleware } from './common/middleware/httpOperationMiddleware';
|
|
|
+import { OperationLogModule } from './modules/operation-log/operation-log.module';
|
|
|
+import { OperationLogService } from './modules/operation-log/operation-log.service';
|
|
|
@Module({
|
|
|
imports: [
|
|
|
- LoggerModule.forRoot(),
|
|
|
+ LoggerModule.forRoot({
|
|
|
+ pinoHttp: {
|
|
|
+ stream: pino.destination({
|
|
|
+ dest: './helper-log', // omit for stdout
|
|
|
+ minLength: 4096, // Buffer before writing
|
|
|
+ sync: true, // Asynchronous logging
|
|
|
+ }),
|
|
|
+ },
|
|
|
+ }),
|
|
|
/* 配置文件模块 */
|
|
|
ConfigModule.forRoot({
|
|
|
isGlobal: true,
|
|
@@ -30,8 +42,17 @@ import { MenuModule } from './modules/menu/menu.module';
|
|
|
CategoryModule,
|
|
|
|
|
|
MenuModule,
|
|
|
+
|
|
|
+ OperationLogModule,
|
|
|
],
|
|
|
controllers: [],
|
|
|
providers: [],
|
|
|
})
|
|
|
-export class AppModule {}
|
|
|
+export class AppModule {
|
|
|
+ configure(consumer: MiddlewareConsumer) {
|
|
|
+ consumer.apply(HttpLoggerMiddleware).forRoutes({
|
|
|
+ path: '*',
|
|
|
+ method: RequestMethod.ALL,
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|