【问题标题】:optimal way to monitor file size using java使用java监控文件大小的最佳方法
【发布时间】:2015-05-27 12:46:18
【问题描述】:

我想轮换已经由 logrotate 管理的日志。

然而,logrotate 仅用于每天轮换日志,因为它纯粹是一项 CRON 任务。

当文件大小超过 logrotate 配置文件的 size 参数中指定的大小时,我想执行 logrotate。我计划通过监视日志文件来实现相同的功能,并在日志文件的大小超过 logrotate 配置中指定的大小时执行 logrotate。

在 java 中执行此操作的最佳方法是什么?

【问题讨论】:

  • Unix logrotatesize=100k 应该可以,但我可能使用了错误的“logrotate”。
  • 由于这个 logrotate 作为 cron 任务执行,它只会在指定的时间执行。到那时,如果文件的大小超过为 size 配置的值,则文件将被旋转。但我的要求是在文件大小超过配置值时调用此 logrotate。
  • 这个日志文件在写什么?一些日志系统具有内置的日志轮换功能。
  • 我们的代码是一个遗留代码,修改为使用任何日志框架是一项繁琐的任务来实现和进行测试。因此我选择通过添加逻辑来调用 logrotate 来坚持现有的功能。

标签: java logging logrotate


【解决方案1】:

这样做的一种方法是使用WatchService,然后在文件正在写入并且大小大于阈值时采取行动。

【讨论】:

  • 谢谢..会试试
  • 你好,我可以看到这个api是从jdk1.7引入的。我们的构建过程使用 jdk1.6,因此不能使用 WatchService。如果您知道 jdk1.6 中的任何其他等效和最佳方式,请告诉我。
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 2012-07-07
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 2012-09-15
相关资源
最近更新 更多