推荐使用 file-stream-rotator:NodeJS 日志自动旋转工具

推荐使用 file-stream-rotator:NodeJS 日志自动旋转工具

项目介绍

file-stream-rotator 是一个专为 NodeJS 设计的日志文件自动旋转工具。它能够根据日期、文件大小或两者的组合自动旋转日志文件,并支持删除旧日志文件以节省空间。无论是 Express/Connect 日志还是其他需要定期写入文件的场景,file-stream-rotator 都能提供高效的日志管理解决方案。

项目技术分析

file-stream-rotator 的核心功能包括:

  • 自动旋转:根据设定的频率(如每日、每小时、每分钟)或文件大小自动旋转日志文件。
  • 日期格式化:支持多种日期格式,如年、月、日、小时、分钟和秒,以及 AM/PM 文本替换。
  • 文件大小限制:可以设定文件的最大大小,超过该大小后自动旋转。
  • 日志保留策略:支持按文件数量或天数保留日志文件,并使用审计文件跟踪日志文件。
  • 流处理:提供灵活的流处理选项,支持自定义文件打开、关闭、错误和完成事件。

项目及技术应用场景

file-stream-rotator 适用于以下场景:

  • Web 服务器日志管理:适用于 Express/Connect 等 Web 框架的日志管理。
  • 定期任务日志:适用于需要定期生成日志文件的任务,如定时备份、数据同步等。
  • 日志分析系统:适用于需要对日志文件进行长期存储和分析的系统。
  • 日志归档:适用于需要定期归档和清理日志文件的场景。

项目特点

  • 灵活的配置选项:支持多种频率、日期格式和文件大小限制,满足不同需求。
  • 高效的日志管理:自动旋转和删除旧日志文件,节省存储空间。
  • 易于集成:可以轻松集成到现有的 NodeJS 项目中,支持 TypeScript 和 JavaScript。
  • 事件驱动:支持自定义事件处理,如旋转事件、新文件事件和日志删除事件。
  • 无外部依赖:自版本 1 起,移除了外部依赖,内部处理日期替换,提高了性能和稳定性。

安装与使用

npm install file-stream-rotator

TypeScript 示例

import * as FileStreamRotator from 'file-stream-rotator'

var rotatingLogStream = FileStreamRotator.getStream({
    filename: "/tmp/test-%DATE%", 
    frequency: "daily", 
    date_format: "YYYY-MM-DD", 
    size: "100M",
    max_logs: "10",
    audit_file: "/tmp/audit.json",
    extension: ".log",
    create_symlink: true,
    symlink_name: "tail-current.log",
})

JavaScript 示例

var rotatingLogStream = require('file-stream-rotator').getStream({filename:"/tmp/test.log", frequency:"daily", verbose: false});

// 使用新流在 Express 中
app.use(express.logger({stream: rotatingLogStream, format: "default"}));

通过 file-stream-rotator,您可以轻松管理日志文件,确保日志的持续性和可维护性。无论是小型项目还是大型系统,file-stream-rotator 都能提供强大的日志管理功能,助力您的开发和运维工作。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值