聊到Debian系统下的Node.js日志管理,目前业内比较公认的做法,还是借助像winston或pino这样的第三方日志库。这类工具能帮你把日志分门别类,管理起来清晰很多。下面以winston为例,看看具体怎么操作。

第一步当然是把前置条件准备好,Node.js和npm得先装好。如果还没装,直接去Node.js官网下载安装就行。
接下来,在项目里安装
winston库:npm install winston核心来了,创建一个
logger.js文件,配置winston日志记录器。这里的关键是设置不同的日志级别和输出传输器:const { createLogger, format, transports } = require('winston'); const logger = createLogger({ level: 'info', format: format.combine( format.timestamp(), format.printf(({ timestamp, level, message }) => { return `[${timestamp}] ${level.toUpperCase()}: ${message}`; }) ), transports: [ new transports.Console(), new transports.File({ filename: 'error.log', level: 'error' }), new transports.File({ filename: 'combined.log' }), ], }); if (process.env.NODE_ENV !== 'production') { logger.add(new transports.File({ filename: 'development.log' })); } module.exports = logger;这个配置里,日志会同时输出到控制台和不同文件,错误日志有专门的记录文件,开发日志也有专属的存储位置。生产环境下,只记录错误和综合日志,开发环境则多一个开发日志文件。
然后在主应用代码里,通过
require引入这个logger模块,就可以直接使用了:const logger = require('./logger'); logger.info('This is an info message'); logger.error('This is an error message');最后,运行应用,看看日志文件是不是按照预期分类存储了:
node app.js
这样一来,在Debian系统上用Node.js做日志分类管理就清晰多了。具体配置完全可以根据项目需求灵活调整,比如日志格式、输出目标、级别过滤等,都可以按需定制。