Node.js在Ubuntu中如何日志记录
作者:RiverSoul
时间:2026-07-03
浏览:0
在Ubuntu上使用Node.js记录日志,基础方法为console.log与console.error;复杂项目需借助Winston等第三方库实现分级、文件输出及多种传输,也可通过os.log()写入系统日志,生产环境推荐Winston等成熟方案。
在Ubuntu上用Node.js做日志记录,这事儿说难不难,但想做得规范、可追溯,还真得花点心思。最直接的办法就是Node.js自带的console.log()和console.error()——开发调试时顺手写两行,确实方便。比如读个文件,出错时输出错误日志,成功时打印内容,这样写:
const fs = require('fs');
fs.readFile('file.txt', 'utf-8', (err, data) => {
if (err) {
console.error('Error reading file:', err);
return;
}
console.log('File content:', data);
});

但这只是最基础的用法——项目一旦复杂起来,光靠console就不太够用了。你需要对日志分级、按文件输出、甚至支持多种传输方式。这时候就该第三方日志库登场了。
目前主流的选择有三个:
- Winston:功能最全面,支持文件、控制台、HTTP等多种传输,可以自定义日志格式和级别,适合中大型项目。
- Morgan:专门针对Express应用的HTTP请求日志中间件,如果你在用Express,它几乎是标配。
- Bunyan:结构化日志库,输出JSON格式,方便后续用工具解析和分析。
以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' }),
],
});
// Log an error message
logger.error('Error reading file:', err);
// Log a regular message
logger.info('File content:', data);
这样一来,错误日志和普通日志分别写入不同文件,排查问题时就清晰多了。
当然,还有另一种思路:直接利用操作系统自带的日志系统。Node.js的os模块提供了os.log()方法,可以把日志写入系统日志(比如syslog),不过要注意——这个操作通常需要root权限:
const os = require('os');
os.log('info', 'File content:', data);
总而言之,在Ubuntu上做Node.js日志,选择取决于你的实际场景。简单的脚本或小工具,console完全够用;一旦进入生产环境,还是推荐Winston这类成熟的日志库,既有灵活性,也更便于后期运维。
作者最新文章
微软推出Project Zenith:面向Windows 11开发者的AI硬件加速方案
2026-09-08 18:15
打破流量垄断,让平台经济释放普惠红利
2026-09-08 18:07
Arm AGI CPU详解:136核Neoverse V3,3nm双芯粒架构与AI数据中心部署
2026-09-08 17:18
Windows安装Docker教程:启用WSL2并运行第一个容器验证
2026-09-04 09:26
PDF转Word操作指南:在线与本地转换方法及格式检查
2026-09-03 16:03
上一篇:
Linux文件系统如何兼容其他系统
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































