首页 > 解决方案 > PM2 + Winston 日志管理

问题描述

我想每天都有日志文件。我不希望他们两个都创建单独的日志文件。我每天只想要一个日志文件。

示例:application-YYYY-MM-DD:HH:MM.log(日志轮换)

我怎样才能做到这一点?此外,PM2 Log Rotate 不支持记录时间戳。那么,如何合并这两个功能呢?

我附加了生态系统.config.js 以及 logger.js

生态系统.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 创建日志文件。

另外,我需要文件传输和控制台传输。请检查上面的代码。

标签: node.jspm2winston

解决方案


推荐阅读