【问题标题】:Java FileHandler and rolling log filesJava FileHandler 和滚动日志文件
【发布时间】:2016-09-02 11:14:14
【问题描述】:

我了解当达到特定大小时 Java FileHandler 如何滚动到下一个日志文件。我想要的有点不同。我想使用 FileHandler 来使用程序启动时序列中最后写入时间最早的日志文件。

例如,如果我指定使用 5 个日志文件: mylog.0.log, mylog.1.log...mylog.4.log

如果程序上次更新 mylog.2.log,那么下次我启动程序时,我希望它开始记录到 mylog.3.log。

我要解决的问题是,当用户执行程序并发生某些事情时,他们通常会重新启动程序,如果 mylog.0.log 可用,它将始终使用它,而不是转到 mylog.1.log。我丢失了之前执行程序的信息。

【问题讨论】:

  • 使用条件代码块,如果文件存在,则使用其他名称命名日志文件。
  • 您有任何代码和/或 logging.properties 可以添加到此问题中吗?

标签: java logging filehandler


【解决方案1】:

根据java.util.logging.FileHandler 的文档:

通过在基本文件名中添加“0”、“1”、“2”等来命名较旧的文件。

似乎暗示顺序总是与你想要的相反。

看起来您唯一的选择是implement a config class 生成您想要的文件名并将其传递给 FileHandler。

你可以manually rollover a log file,但不是你想要的顺序。

【讨论】:

  • 不会将限制设置为 1 只是在滚动到下一个字节之前将 1 个字节写入文件吗?这如何解决我的问题。我想在程序的生命周期内将所有内容写入单个日志文件,然后使用下一个排序的日志文件进行程序的下一次调用等,然后在达到我想要的最大日志文件数时回滚到日志文件 0使用。
猜你喜欢
  • 2010-10-29
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2016-03-15
相关资源
最近更新 更多