在Ubuntu上,Node.js應用程序的日志管理可以通過以下幾種方法來實現:
Node.js內置了一個名為console的模塊,可以用于在控制臺輸出日志。你可以使用console.log(), console.error(), console.warn()等方法來輸出不同級別的日志。
const express = require('express');
const app = express();
app.get('/', (req, res) => {
console.log('Request received');
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
有許多第三方日志庫可以幫助你更好地管理Node.js應用程序的日志。一些流行的日志庫包括winston、bunyan和morgan。
例如,使用winston:
const express = require('express');
const winston = require('winston');
const app = express();
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(),
}));
}
app.get('/', (req, res) => {
logger.info('Request received');
res.send('Hello World!');
});
app.listen(3000, () => {
logger.info('Server is running on port 3000');
});
當日志文件變得非常大時,可能需要對其進行輪轉以釋放磁盤空間??梢允褂胮m2或者logrotate等工具來實現日志輪轉。
例如,使用logrotate:
創建一個名為/etc/logrotate.d/nodejs
的文件,添加以下內容:
/var/log/nodejs/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
這將每天輪轉Node.js應用程序的日志文件,并保留最近7天的日志。
使用進程管理器(如pm2)可以幫助你監控和管理Node.js應用程序。pm2提供了日志管理功能,可以實時查看應用程序的輸出日志。
安裝pm2:
sudo npm install pm2 -g
使用pm2啟動應用程序:
pm2 start app.js --name my-app
查看日志:
pm2 logs my-app
這些方法可以幫助你在Ubuntu上管理Node.js應用程序的日志。你可以根據項目需求選擇合適的方法。