JVM이이 응용 프로그램의 현재 폴더에 (기본적으로) 저장되어있는 로그 파일을 생성하고 다음과 같은 형식을 존중 이름이 충돌 : hs_err_pid를 [PID]는 내가해야JVM 충돌 로그 파일에 고유 한 이름을 지정하는 방법은 무엇입니까?
을 .log로 JVM은이 파일을 원하는 이름으로 다른 폴더에 저장합니다. 그래서, 가상 머신이 명령 줄 인수를 사용 : 그것은 작동하고
-XX:ErrorFile=./log/jvm_error_pid%p.log
을,하지만 난이 솔루션에 대해 뭔가를 좋아하지 않는다. 로그 폴더에 이미 jvm_error_pid5000.log이라는 파일이 있다고 가정 해 봅시다. 나중에 PID가 5000 인 JVM에 추락이 발생하면 JVM은 로그 폴더의 파일을 덮어 쓰지 않으며이 로그 파일을 TEMP 폴더에서 테스트 한 것과 완전히 다른 위치에 저장합니다 현재 OS 사용자). 심지어는 고유성을 보장하기 위해 임의의 문자열을 추가하여 새 파일의 이름을 바꾸지 않습니다.
오류 로그 파일에 대한 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