2011-11-04 31 views
14

Tôi cần phải định cấu hình nơi nhật ký sự cố jvm được tạo. Tôi thích tên họ có (hs_err_pid.log) nhưng tôi muốn chúng được tạo trong một thư mục cụ thể.cách đặt vị trí tệp nhật ký sự cố jvm

Trong here bạn có thể thấy rằng bạn có thể sử dụng

-XX:ErrorFile=./hs_err_pid<pid>.log 

param để thiết lập FILE tạo ra, nhưng nếu bạn thiết lập này vào một thư mục, do đó các tập tin được tạo ra trong thư mục đó với quy ước đặt tên ban đầu , nó không hoạt động, nó bị bỏ qua.

Tôi đã thử nghiệm điều này bằng cách đâm jvm 1.6 từ this questions, sử dụng: PathDasher dasher = new PathDasher (null);

Bất kỳ ai biết cách để đạt được điều này?

+0

http://stackoverflow.com/questions/1880166/is-it-possible-to-specify-where-jvms-crash-dumps-go –

Trả lời

18

-XX:ErrorFile=/var/log/java/hs_err_pid%p.log hoạt động.

Xem http://www.oracle.com/technetwork/java/javase/felog-138657.html

Tham số không cho phép biến môi trường, nhưng bạn có thể sử dụng các biến môi trường trong một kịch bản phóng (ví dụ sh hoặc .bat) và hệ điều hành sẽ thực hiện thay. Tuy nhiên, điều này sẽ sử dụng giá trị của biến môi trường tại thời điểm bắt đầu JVM và không phải khi tệp được ghi sau này. Hơn nữa, các biến môi trường không hoạt động khi thiết lập các thuộc tính Run trong Eclipse.

JVM sẽ không tạo các thư mục trung gian để lưu vùng đổ sụp. Vùng đổ sụp sẽ được lưu ở vị trí mặc định nếu thư mục được chỉ định không tồn tại.

+0

Cách chạy lệnh đó bằng java? Tôi đã thử qua cmd nhưng không thành công –

1

Bạn phải sử dụng điều này như

java -XX: ErrorFile =/var/log/java/hs_err_pid% p.log -Xbootclasspath/p :. Tai nạn

trong dấu nhắc lệnh. Ở đây, Crash là tệp java của tôi.

Các vấn đề liên quan