Проблема с расширением уровня доступа jog4j RollingFileAppender rollOver()

Я пытаюсь расширить RollingFileAppender, чтобы он вращался, даже если в систему ведения журнала не поступают сообщения. Обычно метод rollOver вызывается, когда приходит сообщение, и выполняется проверка времени, чтобы запустить ротацию.

Моя версия RollingFileAppender будет вызывать rollOver каждые x секунд, так что мне гарантируется ротация, даже если сообщения не приходят.

Теперь моя проблема в том, что RollingFileAppender rollOver имеет модификатор уровня доступа без модификатора. Таким образом, я не могу вызывать его каждые x секунд, как хочу.

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

Теперь, глядя на код, я не могу понять, почему он не требует модификатора, и я решил внести класс в свои пакеты и вызвать rollOver.

Теперь это кажется грязным. Есть ли у меня другие альтернативы, если я хочу вызвать rollOver?


person Paul Whelan    schedule 26.03.2009    source источник
comment
Какую версию log4j вы используете? Он общедоступен в версии 1.2.14, которую я использую, а также в последней версии 1.2.15.   -  person Matthieu BROUILLARD    schedule 26.03.2009
comment
1.2.15 Я вставил приведенный выше код из исходного кода   -  person Paul Whelan    schedule 26.03.2009


Ответы (1)


Конечно, вы можете сделать это с помощью отражения.

Исходный код извлечен из ствола или из тега 1.2.15: svn в apache

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

Мы говорим об одном и том же: log4j-1.2.15?

person Matthieu BROUILLARD    schedule 26.03.2009
comment
Спасибо, Матье, посмотрю - person Paul Whelan; 26.03.2009