商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Node.js在Ubuntu中如何日志记录

Node.js在Ubuntu中如何日志记录

  发布于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);
});

Node.js在Ubuntu中如何日志记录

但这只是最基础的用法——项目一旦复杂起来,光靠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这类成熟的日志库,既有灵活性,也更便于后期运维。

本文转载于:https://www.yisu.com/ask/81896988.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注