2016-09-02 2 views
0

Я понимаю, как Java FileHandler переходит к следующему файлу журнала при достижении определенного размера. Я хочу немного по-другому. Я хочу использовать FileHandler для использования файла журнала с самым старым последним записанным временем в последовательности при запуске программы.Java FileHandler и файлы журналов для проката

Например, если я указал использовать 5 файлов журнала: mylog.0.log, mylog.1.log ... mylog.4.log

Если программа последнего обновления mylog.2.log то в следующий раз, когда я запустил программу, я хочу, чтобы она начала регистрироваться в mylog.3.log.

Проблема, которую я пытаюсь решить, - это когда пользователь выполняет программу, и что-то происходит, они обычно перезапускают программу, и если mylog.0.log доступен, она всегда будет использовать ее, а не перейти к mylog.1.log. Я теряю информацию из предыдущего выполнения программы.

+0

Используйте код кода условия, если файлы существуют, именованный файл журнала с другим именем. –

+0

Есть ли у вас код и/или logging.properties, которые вы можете добавить к этому вопросу? – jmehrens

ответ

0

За документацию для java.util.logging.FileHandler:

Последовательно старые файлы именуются путем добавления "0", "1", "2" и т.д. в базу файла.

Похоже, что заказ всегда будет противоположным тому, что вы хотите.

Похоже, что ваш единственный вариант - implement a config class, чтобы сгенерировать нужное имя файла и передать его в FileHandler.

Вы можете manually rollover a log file, но не в своем порядке.

+0

Не установил ли ограничение на 1, просто напишите 1 байт в файл перед переходом к следующему? Как это решает мою проблему. Я хочу написать все в один файл журнала на протяжении всей жизни программы, а затем использовать следующий секвенсорный файл журнала для следующего вызова программы и т. Д., А затем вернуться к файлу журнала 0, когда он достигнет максимального количества файлов журнала, которые я хочу использовать. –

Смежные вопросы