Когда JVM падает он создает файл журнала, который будет сохранен (по умолчанию) в текущей папке приложения и имеет имя уважая следующий формат: hs_err_pid [PID] .logКак указать уникальное имя для файлов журнала сбоев JVM?
мне нужно сделать JVM сохранит этот файл в другой папке с нужным именем. Таким образом, я использую эту аргумент командной строки для виртуальной машины:
-XX:ErrorFile=./log/jvm_error_pid%p.log
Это работает, но мне не нравится что-то об этом решении. Предположим, что папка журнала уже содержит файл с именем jvm_error_pid5000.log. Если в JVM произошел сбой на JVM с 5000 PID, JVM не переопределяет файл jvm_error_pid5000.logjvm_error_pid5000.log из папки журнала и сохраняет этот файл журнала в совершенно другом месте (из того, что я тестировал в папке TEMP текущего пользователя ОС). Он даже не переименовывает новый файл, добавляя случайную строку, чтобы обеспечить уникальность.
Я не нашел ничего относительно этой уникальности на странице документации Oracle о файлах журнала сбоев. Я хотел бы знать, есть ли способ улучшить этот аргумент командной строки, чтобы он всегда генерировал разные имена файлов журнала сбоев. Например, я хочу использовать аргумент командной строки, чтобы поставить дату и время в имени файла:
-XX:ErrorFile=./log/jvm_error_pid%p_%d_%h.log
Думаю, я просто отдам ее ** - XX: ErrorFile =./Log/jvm_error_pid% p.log ** так как эта ошибка JVM появляется очень редко в любом случае (так что шанс иметь дубликат очень низкий). Я буду отмечать этот ответ, так как это хорошая идея, чтобы динамически генерировать этот аргумент где-то перед запуском приложения. – Valy
Еще одна идея, которую я хотел бы сделать, - это реализовать другое приложение Java, которое запускает ваше реальное приложение Java. Это еще один способ динамически генерировать аргумент ** - XX: ErrorFile **. – Valy