PM2 Управление журналами Winston

#node.js #pm2 #winston

#node.js #pm2 #winston

Вопрос:

Я хочу иметь файлы журналов на ежедневной основе. Я не хочу, чтобы они оба создавали отдельные файлы журналов. Мне просто нужен один файл журнала на ежедневной основе.

пример: приложение-ГГГГ-ММ-ДД: ЧЧ: мм.журнал (вращение журнала)

Как я могу этого добиться? Кроме того, поворот журнала PM2 не поддерживает временные метки для ведения журнала. Итак, как я могу объединить обе функции?

Я прикрепил ecosystem.config.js а также logger.js

ecosystem.config.js

 module.exports = {
  apps: [{
    name: 'API',
    script: 'app.js',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    output: `./logs/starter-logs.log`,
    error: `./logs/starter-errors.log`,
    log: './logs/combined.outerr.log',
    log_date_format: 'DD-MM-YYYY HH:mm:ss:SS Z',
    append_env_to_name: true,
    // For merging cluster mode logs
    merge_logs: true,
    env: {
      NODE_ENV: 'development',
      PORT: 3002,
      MONGODB_URI: 'mongodb://localhost:27017/test'
    },
    env_production: {
      NODE_ENV: 'production',
      PORT: 3004,
    }
  }]
  

logger.js

 const logger = createLogger({
  level: 'info',
  format: format.combine(
    format.timestamp({
      format: 'YYYY-MM-DD HH:mm:ss'
    }),
    format.errors({ stack: true }),
    format.splat(),
    format.json()
  ),
  transports: [
    new transports.File({ filename: `${logFileName}-error.log`, level: 'error' }),
    new transports.File({ filename: `${logFileName}-combined.log` }),
    new transports.Console(),
  ]
});


  

Нужен единый файл журнала, вместо того, чтобы PM2 создавал журналы, а Winston создавал файлы журналов.

Кроме того, мне нужен перенос файлов, а также консольный транспорт. Пожалуйста, проверьте приведенный выше код.