node.js - 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 创建日志文件。
另外,我需要文件传输和控制台传输。请检查上面的代码。
解决方案
推荐阅读
- javascript - 如何使用 jQuery 和 Bootstrap 在文档中创建多个模式?
- micronaut - Micronaut Swagger Groovy 不生成 openapi yaml 文件
- python - 如何比较熊猫中两个相关数据框的两列
- android - 如何在不从 Android 应用程序中获取视频数据的情况下安全地解密 Android 中的视频数据
- javascript - React Native 与 react-navigation 和 Redux - 如何实现全局可用的“退出”按钮
- python - 在 Pandas 数据帧之间乘以多个因素的最有效方法是什么?
- javascript - ssh2-sftp-client 获取多个文件 - 错误“结束后写入”
- javascript - 修改 app.js 文件时,Expo.GLView 在 iOS 上不起作用
- javascript - Formik 的 handleChange 在 DateInput 的 onChange 上抛出“TypeError: null is not an object (evalating '_a.type')”
- google-sheets - 如何在 Google 表格中从 MarketWatch 导入字段