要通过日志监控Ubuntu Node.js服务状态,你可以遵循以下步骤:
首先,确保你的Node.js应用程序正在运行。如果还没有,请使用npm start
或node app.js
(取决于你的启动脚本)启动它。
在你的Node.js应用程序中,确保你已经设置了日志记录。你可以使用像winston
、morgan
或其他流行的日志库。例如,要使用winston
,你需要先安装它:
npm install winston
然后,在你的应用程序中设置日志记录:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple()
}));
}
logger.info('Server is running on port 3000');
这将在你的应用程序目录中创建两个日志文件:error.log
和combined.log
。
确保你的Node.js应用程序在后台运行。你可以使用pm2
这样的进程管理器来实现这一点。首先安装pm2
:
npm install pm2 -g
然后使用pm2
启动你的应用程序:
pm2 start app.js --name my-node-app
这将以名为my-node-app
的进程运行你的应用程序。
使用pm2 logs
命令查看你的Node.js应用程序的日志。这将显示error.log
和combined.log
中的所有日志条目。
pm2 logs my-node-app
你可以使用-f
或--follow
选项实时查看日志:
pm2 logs my-node-app -f
若要设置日志轮转,可以使用pm2
的内置功能。创建一个名为ecosystem.config.js
的文件,其中包含以下内容:
module.exports = {
apps: [
{
name: 'my-node-app',
script: 'app.js',
instances: 'max',
exec_mode: 'cluster',
autorestart: true,
watch: false,
max_memory_restart: '1G',
log_date_format: 'YYYY-MM-DD HH:mm Z',
out_file: './out.log',
error_file: './err.log',
combine_logs: true,
time: true,
append_output: true
}
]
};
然后使用pm2 start ecosystem.config.js
启动你的应用程序。这将自动处理日志轮转。
通过遵循这些步骤,你可以轻松地监控Ubuntu上的Node.js服务状态。根据需要调整日志级别和日志文件位置。