游乐游手机版
首页/编程语言/文章详情

Node.js日志切割实现方法

时间:2026-06-29 06:56
在实际项目开发中,日志文件若不及时切割,很快就会变得异常庞大,既占用磁盘空间,又增加排查问题的难度。那么,在 Node js 环境中如何实现日志的自动按天切分呢?使用 winston 搭配其扩展库 winston-daily-rotate-file 就是一种非常成熟的方案。下面直接提供完整代码实现,

在实际项目开发中,日志文件若不及时切割,很快就会变得异常庞大,既占用磁盘空间,又增加排查问题的难度。那么,在 Node.js 环境中如何实现日志的自动按天切分呢?使用 winston 搭配其扩展库 winston-daily-rotate-file 就是一种非常成熟的方案。下面直接提供完整代码实现,每一步都清晰易懂。

Node.js日志如何进行切割

第一步:安装依赖

npm install winston winston-daily-rotate-file

第二步:编写日志配置模块

新建一个 logger.js 文件,核心配置如下 —— 自定义日志格式、按日期自动切分、自动压缩归档,一次配置即可完成全部需求。

const winston = require('winston');
const { format } = winston;
const { combine, timestamp, printf } = format;
const DailyRotateFile = require('winston-daily-rotate-file');

// 自定义日志格式:时间 + 级别 + 消息
const myFormat = printf(({ timestamp, level, message }) => {
  return `${timestamp} ${level}: ${message}`;
});

const logger = winston.createLogger({
  level: 'info',
  format: combine(
    timestamp(),
    myFormat
  ),
  transports: [
    new DailyRotateFile({
      filename: 'logs/application-%DATE%.log',
      datePattern: 'YYYY-MM-DD',
      zippedArchive: true,       // 归档压缩,节省空间
      maxSize: '20m',            // 单个文件最大 20MB
      maxFiles: '14d'            // 保留最近 14 天的日志
    })
  ]
});

module.exports = logger;

第三步:在应用中引入并使用

在需要记录日志的位置,只需引入这个 logger 模块即可正常使用,其接口与标准 winston logger 完全一致。

const logger = require('./logger');

logger.info('Hello, world!');
logger.error('An error occurred');

配置完成后,系统每天会自动生成一个形如 application-2026-06-26.log 的新日志文件,并按设定规则对旧文件进行压缩归档和清理。这样一来,日志管理变得井井有条,再也不用担心磁盘空间被日志文件撑爆。

来源:https://www.yisu.com/ask/38647342.html
上一篇如何在Linux上配置Java日志输出详细完整教程与步骤 下一篇Linux下Golang日志与数据库集成实战指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
如何在CentOS系统中快速准确地定位PHP性能瓶颈的方法
编程语言 · 2026-06-29

如何在CentOS系统中快速准确地定位PHP性能瓶颈的方法

在CentOS环境下,通过日志分析精确定位高消耗请求,使用Xdebug、Blackfire或XHProf深入剖析代码级瓶颈,结合系统资源监控识别硬件瓶颈,调整PHP-FPM和MySQL配置,并优化代码与数据库设计,可全面系统地有效排查并解决常见PHP性能问题。

CentOS系统中PHP执行时间设置方法详解与注意事项
编程语言 · 2026-06-29

CentOS系统中PHP执行时间设置方法详解与注意事项

在CentOS系统中,通过编辑php ini文件中的max_execution_time参数(默认30秒)可调整PHP脚本最大执行时间。操作包括定位文件、去除注释并设置新值,保存后重启Apache或Nginx等Web服务器使生效。

编程语言 · 2026-06-29

CentOS系统PHP代码备份与迁移完整教程

备份CentOS上PHP代码可通过rsync增量同步、tar打包和mysqldump数据库导出实现。建议编写自动化脚本并设置cron定时任务,将备份文件与源文件分开存储,同时定期检查备份完整性,确保数据安全。

CentOS环境下Java性能监控实现方案详解
编程语言 · 2026-06-29

CentOS环境下Java性能监控实现方案详解

在CentOS上实现Java性能监控需综合运用JVM自带工具(jstat、jmap)、第三方(VisualVM、JProfiler)、系统命令(top、vmstat)及GC日志分析、APM方案。按目标组合使用,可排查内存泄漏、优化响应时间与进行容量规划。

CentOS系统下PHP进程状态实时监控与故障排查指南
编程语言 · 2026-06-29

CentOS系统下PHP进程状态实时监控与故障排查指南

在CentOS上监控PHP进程状态,可通过ps命令快速定位,top实时观察,htop增强交互,systemd服务管理查看状态,或引入Nagios、Zabbix等第三方工具实现长期监控与告警。日常排查可选ps和top,服务化部署用systemctl,规模化运维需统一监控平台。