我正在尝试扩展RollingFileAppender,以便即使没有消息进入日志记录系统,它也会旋转。通常,当消息到达并进行时间检查以触发旋转时,将调用rollOver方法。

我的RollingFileAppender版本会每隔x秒调用rollOver,这样即使没有消息到达,我也可以保证轮换。

现在我的问题是RollingFileAppender rollOver的访问级别修改器没有修改器。因此,我不能像我希望的那样每隔x秒调用一次。

  /**
     Rollover the current file to a new file.
  */
  void rollOver() throws IOException {


现在看代码,我不知道为什么它不需要修饰符,因此我决定将类引入我的程序包并调用rollOver。

现在感觉很脏,如果我想打电话给rollOver,我还有其他选择吗?

最佳答案

您当然可以使用反射来完成。

从主干或标签1.2.15中提取的源代码:svn at apache

public // synchronization not necessary since doAppend is alreasy synched
void rollOver() {
  File target;
  ...


我们是否谈论同一件事:log4j-1.2.15?

09-27 23:49