Майк, ты прав в своем комментарии выше. Вы не получите новый файл, если в течение этого времени не ведется регистрация. Если вам необходимо устранить проблему, вам нужно запустить поток с исполняемым файлом, который отправляет строку в журнал после начала каждого нового часа.
Цель состоит в том, чтобы делать один пост в вашем журнале каждые 59,5 минут, начиная с минуты 1.
Базовые стандартные знания о том, как использовать Runnable и Thread, необходимы для его решения. Я предполагаю, что вы работаете со стандартным приложением, а не в среде управляемого сервера
- создать класс, который реализует
Runnable
- перезаписывает метод
run()
с помощью цикла while
на логическую переменную true
(isAlive), которую ваше приложение может установить на false
, когда приложение закрывается.
- во время цикла вызовите метод
.info("Logger Text")
для static Logger logger = Logger.getLogger(YourClassName.class);
с временем ожидания цикла 60 минут.
- Бросить
Runnable
в new Thread()
объект при запуске приложения
- сделать одну
info()
запись в ваш лог при запуске.
- запускать объект потока при запуске приложения.
Run () метод Runnable может быть
public void run() {
while (isAlive) { // isAlive is a global-level (static, even) boolean
// you declared earlier as true, your app should set it to false
// if your app decides to exit
try {
logger.info("Rollover Log Text");
Thread.currentThread().sleep(1000 * 60 * 60); // 60 minutes
} catch (InterruptedException ignore) {
}
}
}
Не забудьте установить isAlive
на true
перед тем, как запустить Thread
, установить его на false
при завершении работы или закрытии ошибки / исключения, и вызвать метод interrupt()
вашего потока после установки на false
. Это должно войти один раз в час.