发布于2026-07-03 阅读(0)
扫一扫,手机访问
在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为例,看看怎么用。先安装:
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这类成熟的日志库,既有灵活性,也更便于后期运维。
下一篇:如何清理不必要的Swap
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8