gremo / nest-winston

A Nest module wrapper form winston logger
MIT License
640 stars 94 forks source link

[Bug]: Logging don't show context and datetime when update from 1.9.4 to 1.9.7 #847

Open doanthai opened 1 month ago

doanthai commented 1 month ago

Version of Nest?

9.4.3

Version of nest-winston package?

1.9.7

Version of winston package?

3.14.2

Bug description

After upgrade version from 1.9.4 to 1.9.7, my log in application doesn't show context and datetime. This is example log at version 1.9.4

[NestJS] info        9/26/2024, 10:12:47 AM [NestFactory] Starting Nest application... +0ms
[NestJS] info        9/26/2024, 10:12:47 AM [InstanceLoader] VConfigModule dependencies initialized +2ms
[NestJS] info        9/26/2024, 10:12:47 AM [InstanceLoader] MongooseModule dependencies initialized +1ms
[NestJS] info        9/26/2024, 10:12:47 AM [InstanceLoader] VConfigModule dependencies initialized +0ms
[NestJS] info        9/26/2024, 10:12:47 AM [InstanceLoader] ConfigHostModule dependencies initialized +0ms
[NestJS] info        9/26/2024, 10:12:47 AM [InstanceLoader] TerminusModule dependencies initialized +0ms
[NestJS] info        9/26/2024, 10:12:47 AM [InstanceLoader] ConfigModule dependencies initialized +1ms
[NestJS] info        9/26/2024, 10:12:47 AM [InstanceLoader] CqrsModule dependencies initialized +0ms

and version 1.9.7:

[NestFactory] Starting Nest application... +0ms
[InstanceLoader] VConfigModule dependencies initialized +2ms
[InstanceLoader] MongooseModule dependencies initialized +1ms
[InstanceLoader] VConfigModule dependencies initialized +0ms
[InstanceLoader] ConfigHostModule dependencies initialized +0ms
[InstanceLoader] TerminusModule dependencies initialized +0ms
[InstanceLoader] ConfigModule dependencies initialized +1ms
[InstanceLoader] CqrsModule dependencies initialized +0ms

This is my winston config

import ecsFormat from '@elastic/ecs-winston-format';
import { LoggerService } from '@nestjs/common';
import { utilities, WinstonModule } from 'nest-winston';
import * as winston from 'winston';
import DailyRotateFile from 'winston-daily-rotate-file';
import * as Transport from 'winston-transport';
import { LoggerConfig } from '../config';

export const winstonTransportFactory: (name: string, config: LoggerConfig) => Transport[] = (
  appName = 'NestJS',
  loggerConfig: LoggerConfig,
) => {
  const transports: Transport[] = [];
  if (loggerConfig?.allowConsole) {
    transports.push(
      new winston.transports.Console({
        level: loggerConfig.levels,
        format: winston.format.combine(
          winston.format.timestamp(),
          winston.format.ms(),
          winston.format.colorize({
            level: true,
            all: true,
            message: true,
          }),
          utilities.format.nestLike(appName, { prettyPrint: true, colors: loggerConfig.allowColor }),
        ),
      }),
    );
  }
  if (loggerConfig?.allowFile) {
    transports.push(
      new DailyRotateFile({
        level: loggerConfig.levels,
        dirname: loggerConfig?.dirname,
        filename: `${loggerConfig?.filename}-%DATE%.log`,
        datePattern: loggerConfig?.datePattern,
        zippedArchive: true,
        maxSize: loggerConfig?.maxSize,
        maxFiles: loggerConfig?.maxFiles,
      }),
    );
  }
  return transports;
};

export const winstonFactory: (name: string, config: LoggerConfig) => LoggerService = (
  appName = 'VService',
  loggerConfig: LoggerConfig,
) => {
  return WinstonModule.createLogger({
    format: ecsFormat(),
    transports: winstonTransportFactory(appName, loggerConfig),
  });
};
github-actions[bot] commented 1 day ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.