要通過日志監控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服務狀態。根據需要調整日志級別和日志文件位置。