在Ubuntu上管理Node.js应用程序的日志有多种方法,以下是一些常用的工具和策略:
使用console.log()和console.error():
使用日志库:
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' }),
new winston.transports.Console()
]
});
logger.info('Server started on port 3000');
logger.error('Database connection failed');
const bunyan = require('bunyan');
const logger = bunyan.createLogger({
name: 'my-app',
level: 'info',
streams: [
{ level: 'info', stream: process.stdout },
{ level: 'error', path: 'app-error.log' }
]
});
logger.info('Hello World!');
logger.error('This is an error message');
使用PM2进行日志管理:
npm install pm2 -g
pm2 start app.js --name my-app
pm2 logs my-app
使用Logrotate进行日志轮转:
/var/log/nodejs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root adm
}
使用ELK Stack(Elasticsearch, Logstash, Kibana)进行集中式日志管理:
通过这些方法和工具,可以有效地在Ubuntu上管理Node.js应用程序的日志,确保系统的可维护性和稳定性。