nxlog 如何跟踪行号?

How does nxlog track the line number?

在 nxlog 配置中我设置了这些参数:

SavePos True
ReadFromLast True

当从日志文件中删除行时(这种情况永远不会发生),nxlog 传送整个日志文件。这与 nxlog 如何跟踪行号有关吗?

重新创建:

  1. 我停止了 nxlog 服务
  2. 删除 nxlog 缓存(只是为了确保我重新开始)
  3. 现在我配置 nxlog 监视的日志文件夹是空的
  4. 我在文件夹中添加了一个新的日志文件
  5. nxlog 传送日志文件
  6. 我打开日志文件并添加几行
  7. nxlog 发送这些行
  8. 我删除了刚刚添加的那些新行
  9. nxlog 传送整个日志文件

NXLog 和一般其他日志传送器旨在处理仅附加日志文件。 当您从日志文件中删除行时,它会发现文件大小变小了。在仅附加的假设下,这只能意味着该文件是 replaced/rotated 并且当前文件是一个需要完全读取的新文件。

另请注意,当您在文本编辑器中编辑日志文件时,编辑器通常会用一个新文件替换该文件,即使您只将数据附加到末尾也是如此。这不等同于 echo test >> test.log.

如果要传输文件中的各种更改,您应该使用 rsync 或其他工具。