#log #log-line #callback #monitor #trigger #added #async

async-log-watch

一个简单的 Rust 库,用于监控日志文件,并在添加新行时触发异步回调

8 个版本

0.2.0 2023 年 5 月 7 日
0.1.9 2023 年 5 月 6 日

#9 in #added

Download history 2/week @ 2024-03-09 1/week @ 2024-03-16 3/week @ 2024-03-30

89 每月下载量

MIT 许可证

25KB
353 行代码(不含注释)

异步日志监控

async_log_watch 是一个简单的 Rust 库,作为个人项目的组成部分开发。它设计用于监控日志文件,并在文件中添加新行时触发异步回调。该库允许用户轻松地将日志文件监控集成到他们的项目中,并支持同时监控多个日志文件。

创建此库的主要动机是高效地检测由 pm2 等工具生成的新日志行。该库使用 async-std(可以通过添加 tokio 运行时功能使用 tokio)和 notify crate 来进行文件系统事件监控。

用法

async-log-watch 添加到您的 Cargo.toml 依赖项

[dependencies]
async-log-watch = {version = "0.2"}

示例

有关此库用法的示例,请参阅 examples 文件夹中的 示例代码

Cargo 功能

此包允许您通过在 Cargo.toml 中指定功能来使用 async-std 中的 tokio 运行时。默认情况下,它使用带有 attributes 功能的 async-std

要使用默认配置使用此包,请将以下行添加到您的 Cargo.toml

async-log-watch = "0.2"

要使用特定的 Tokio 配置,指定功能如下

async-log-watch = { version = "0.2", features = ["tokio1"] }

可用功能

  • default: 使用带有 attributes 功能的 async-std
  • tokio1: 使用带有 attributestokio1 功能的 async-std
  • tokio02: 使用带有 attributestokio02 功能的 async-std
  • tokio03: 使用带有 attributestokio03 功能的 async-std

请注意,您一次只能启用这些功能中的一个。

待办事项

  • 实现基本日志监控。
  • 支持异步回调
  • 允许同时监控多个日志文件
  • 更新依赖项的新版本。
  • 修复:在转换为绝对文件路径时,使用波浪号 (~) 作为文件夹名称。
  • 修复:在第一次运行时,监视器读取第一行。
  • 处理文件读取错误时的错误处理
  • 使用 thiserror 库改进错误处理。 - 文件错误发生在 spawn 中。
  • 通过回调通知错误
  • 添加了方法:stop_monitoring_file 和 change_file_path
  • 修复:添加方法中的绝对路径 | 测试代码
  • 添加了新的对象 LogEvent,该对象封装了行、路径和 LogError 对象。
  • 更新回调函数的参数以包含功能。
    • 它允许用户在接收到文件打开错误时在回调函数中处理日志文件轮转。

支持 tokio 运行时

  • 添加对其他异步运行时的支持(tokio)
  • 在 async-std 中添加对 tokio 运行时特性的支持

添加过滤选项以根据模式处理特定的日志行

  • 添加过滤选项

未来工作

  • 添加对 文件名模式 的支持:自动监控目录内匹配指定模式的文件。
  • 添加对日志文件轮转的支持
  • 添加跟踪日志

许可证

本项目采用 MIT 许可证 - 请参阅 LICENSE 文件以获取详细信息。

依赖项

~3–15MB
~190K SLoC