在Debian系统上管理Node.js日志通常涉及以下几个方面:选择合适的日志库、配置日志级别、日志格式化、日志输出、日志轮换和日志管理工具的使用。以下是详细的管理方法:
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' }),
new winston.transports.Console(),
],
});
logger.info('This is an info log.');
logger.error('This is an error log.');
Bunyan配置示例:
const bunyan = require('bunyan');
const logger = bunyan.createLogger({
name: 'myapp',
streams: [
{ level: 'info', stream: process.stdout },
{ level: 'error', path: 'app-error.log' },
],
});
logger.info('This is an info log.');
logger.error('This is an error log.');
正确使用日志级别(如trace、debug、info、warn、error、fatal)至关重要,可以根据需要过滤日志内容。
根据实际需求,选择合适的日志格式。对于调试和开发,简单的文本日志足够;对于生产环境,建议使用JSON格式,便于机器处理和分析。
使用日志库的特性或外部工具(如logrotate)来管理日志文件大小,自动删除旧日志或归档。
logrotate配置示例:
/path/to/your/nodejs/app/logs/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
这个配置表示每天轮转日志文件,保留最近7天的日志,并对旧日志文件进行压缩。
pm2:一个常用于生产环境中的Node.js进程管理工具,提供进程守护、负载均衡等高级功能,并内置了日志管理功能。
pm2日志管理命令:
pm2 logs # 查看所有进程的日志
pm2 logs aggregate # 聚合所有进程的日志
在Debian系统中,可以使用以下命令行工具来查看系统日志文件:
通过以上方法,可以有效地在Debian系统上管理Node.js日志,确保应用程序的可靠性和可维护性。