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

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu Node.js日志轮转怎么做

Ubuntu Node.js日志轮转怎么做

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

说到 Node.js 的日志管理,“轮转”是个绕不开的话题——生产环境跑久了,日志文件越堆越大,不光占磁盘,查问题也费劲。在 Ubuntu 上,处理这事儿其实比想象中简单,这里分享两种主流的做法,一个走系统工具路线,另一个靠 Node.js 自带的库搞定。

Ubuntu Node.js日志轮转怎么做

方法一:用 logrotate 工具

logrotate 是 Linux 自带的日志管家,专门负责轮转、压缩、清理这些脏活累活,不需要在应用层面改代码。

  1. 安装 logrotate(如果系统里没有的话):

    sudo apt-get update
    sudo apt-get install logrotate
  2. 为你的 Node.js 应用创建一个配置文件,放在 /etc/logrotate.d/ 下面。比如叫 myapp

    sudo nano /etc/logrotate.d/myapp

    写入以下配置:

    /path/to/your/nodejs/app/logs/*.log {
        daily
        rotate 7
        compress
        delaycompress
        missingok
        notifempty
        create 640 root adm
    }
    • daily:每天轮转一次。
    • rotate 7:保留最近 7 个轮转后的日志文件。
    • compress:把旧的日志文件压缩成 gz 格式。
    • delaycompress:这次不急着压缩,等下次轮转时再压缩。
    • missingok:日志文件如果不在了,不报错,跳过就是。
    • notifempty:空的日志文件不轮转,省事儿。
    • create 640 root adm:轮转后新建日志文件,权限设为 640,属主 root,属组 adm。
  3. 手动测试一下配置是否有效:

    sudo logrotate -f /etc/logrotate.d/myapp

方法二:用 Node.js 日志库自带的轮转功能

如果项目里已经用了 winstonpino 这类日志库,那就不用额外折腾系统工具了——这些库通常内置了轮转支持,配置起来更灵活。

winston 举个例子:

  1. 安装 winstonwinston-daily-rotate-file

    npm install winston winston-daily-rotate-file
  2. 在代码里配置一个按天轮转的 transport:

    const winston = require('winston');
    const DailyRotateFile = require('winston-daily-rotate-file');
    
    const transport = new DailyRotateFile({
        filename: 'application-%DATE%.log',
        datePattern: 'YYYY-MM-DD-HH',
        zippedArchive: true,
        maxSize: '20m',
        maxFiles: '14d'
    });
    
    const logger = winston.createLogger({
        level: 'info',
        format: winston.format.json(),
        transports: [transport]
    });
    
    logger.info('Hello, world!');

    这段配置会按小时生成日志文件(datePattern 里用到了 HH),自动压缩旧文件,单个文件超过 20MB 也会触发轮转,保留最近 14 天的日志。

两种方法各有侧重:logrotate 是最通用、最省事的方案,只要指定日志路径就能跑,跟具体用什么语言、什么框架无关;而 winston-daily-rotate-file 这类库则让轮转逻辑跟应用代码紧密结合,方便按需定制文件名、大小、保留天数等细节。根据实际场景选一个就行,没必要两套都上。

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

热门关注