温馨提示×

debian js日志大小咋限制

小樊
39
2026-09-07 06:43:26
栏目: 编程语言

在 Debian 上“限制 JS 日志大小”通常分几种场景,下面按最常见情况给你说明:


一、Node.js 应用日志(最常见)

✅ 推荐:用日志库自带滚动(rotate)

不要自己写文件,用成熟方案:

1️⃣ winston + winston-daily-rotate-file

npm install winston winston-daily-rotate-file
const winston = require('winston');
const DailyRotateFile = require('winston-daily-rotate-file');

const transport = new DailyRotateFile({
  filename: 'logs/app-%DATE%.log',
  datePattern: 'YYYY-MM-DD',
  maxSize: '20m',     // 单文件最大 20MB
  maxFiles: '14d'     // 保留 14 天
});

const logger = winston.createLogger({
  transports: [transport]
});

✅ 优点:自动切割、自动清理


2️⃣ pm2 + logrotate(生产常用)

如果你用 pm2 启动 JS:

pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 20M
pm2 set pm2-logrotate:retain 7

二、系统级日志大小限制(所有日志)

✅ 用 logrotate(Debian 自带)

编辑配置:

sudo nano /etc/logrotate.d/nodejs

示例:

/var/log/nodejs/*.log {
    size 20M
    rotate 5
    compress
    missingok
    notifempty
    copytruncate
}

测试:

sudo logrotate -d /etc/logrotate.d/nodejs

✅ 适合:直接写文件的 JS 服务


三、Docker 中 Node.js 日志限制

logging:
  driver: "json-file"
  options:
    max-size: "20m"
    max-file: "5"

四、不推荐的方式

❌ 手动 fs.writeFile 不限制
❌ 只用 console.log 不重定向


总结(选一个)

场景 方案
Node 服务 winston / pm2-logrotate
系统日志 logrotate
Docker docker logging

如果你能说下:

  • Node / 浏览器 / 前端构建
  • 日志写在哪(文件 / stdout)
  • 是否用 pm2 / docker

我可以直接给你可复制的配置

0