Rabbani_
Rabbani_

Reputation: 470

Nest logging with winston not creating file

I am trying to implementing lgger in my nest app, its showing console but not creating file.. app.module.ts

import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AdminuserModule } from './adminuser/adminuser.module';

import {
  utilities as nestWinstonModuleUtilities,
  WinstonModule,
} from 'nest-winston';
import * as winston from 'winston';


@Module({
  imports: [
    WinstonModule.forRoot({
      transports: [
        new winston.transports.Console({
          format: winston.format.combine(
            winston.format.timestamp(),
            nestWinstonModuleUtilities.format.nestLike(),
          ),
        }),
      ],
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule { }

app.controller.ts

import { Controller, Get, Inject } from '@nestjs/common';
import { AppService } from './app.service';
import { WINSTON_MODULE_PROVIDER } from 'nest-winston';

import { Logger } from 'winston';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService,@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: Logger) {}

  @Get()
  getHello(): string {
    
    this.logger.info('Calling getHello()', { controller: AppController.name });
    return this.appService.getHello();
  }
}

its logging in console but I need to loggin into file also.. How can I do that?

Upvotes: 0

Views: 1282

Answers (1)

Toan Nguyen
Toan Nguyen

Reputation: 11

You can add more transport to AppModule such as example:

transports: [
      new transports.File({ filename: "error.log", level: "error" }),
      new transports.File({ filename: "combined.log" }),
      new transports.Console(),
    ],

Upvotes: 1

Related Questions