Tôi mới dùng API ghi nhật ký Java và cần trợ giúp về vấn đề này: Trong khi tạo ứng dụng, tệp cấu hình của tôi được lưu trữ trong thư mục gốc của dự án, vì vậy tôi đã sử dụng chuyển đổi -Djava.util.logging.config.file=logging.properties
để chạy chương trình. Nhưng sau đó tôi đã xuất JAR thực thi. Cách định cấu hình đăng nhập ngay bây giờ? Nó không hoạt động, khi tôi chỉ định đường dẫn đến tập tin cấu hình với chuyển đổi -D.Cách định cấu hình ghi nhật ký khi chạy JAR?
Trả lời
Bạn không thể chỉ định đối số JVM vào file MANIFEST.MF vì vậy bạn phải xác định các tính chất khai thác gỗ tại cửa sổ dòng lệnh hoặc với một phím tắt:
java -Djava.util.logging.config.file=logging.properties -jar yourjar.jar
Nếu không, bạn có thể gói nộp tính (logging.properties trong trường hợp của bạn) trong JAR, đọc rằng tại khởi động và đặt các cài đặt đó vào các thuộc tính hệ thống.
The javadoc nói:
Bên cạnh đó, LogManager sử dụng hai thuộc tính hệ thống tùy chọn cho phép kiểm soát nhiều hơn đọc cấu hình ban đầu:
"java.util.logging.config.class" "java.util.logging.config.file"
Hai thuộc tính có thể được thiết lập thông qua Preferences API hoặc dưới dạng lệnh định nghĩa thuộc tính dòng cho lệnh "java" hoặc dưới dạng thuộc tính hệ thống định nghĩa được chuyển đến JNI_CreateJavaVM.
Nếu thuộc tính "java.util.logging.config.class" được đặt, thì giá trị thuộc tính được coi là tên lớp. Lớp được cho sẽ là được nạp, một đối tượng sẽ được khởi tạo, và hàm tạo của đối tượng chịu trách nhiệm đọc trong cấu hình ban đầu. (Đối tượng đó có thể sử dụng các thuộc tính hệ thống khác để kiểm soát cấu hình của nó.) Lớp cấu hình thay thế có thể sử dụng readConfiguration (InputStream) để xác định các thuộc tính trong LogManager.
Vì vậy, hoặc là sử dụng thuộc tính java.util.logging.config.file
hệ thống, và lưu trữ các tập tin cấu hình ra khỏi file jar (mà có lẽ là một ý tưởng tốt nếu bạn muốn để có thể tùy chỉnh các thuộc tính khai thác gỗ để debug hoặc phân tích một số hành vi kỳ lạ) hoặc lưu trữ tệp cấu hình ở bất cứ nơi nào bạn muốn (ví dụ: trong tệp jar) và sử dụng thuộc tính hệ thống java.util.logging.config.class
để tải và khởi tạo lớp sẽ đọc tệp trong tệp jar (Sử dụng Class.getResourceAsStream()
).
- 1. Không thể định cấu hình ghi nhật ký cho jar thực thi
- 2. Cách định cấu hình ghi nhật ký trong Jetty thông qua tệp cấu hình?
- 3. Cách định cấu hình ghi nhật ký vào nhật ký hệ thống trong Python?
- 4. Cách định cấu hình cấp nhật ký của lớp cụ thể trong ghi nhật ký GWT?
- 5. Không thể định cấu hình nhật ký ghi lại
- 6. Log4Net định cấu hình cấp nhật ký
- 7. Ghi nhật ký Python: cách thể hiện dòng mới trong chuỗi định dạng trong tệp cấu hình ghi nhật ký?
- 8. Định cấu hình nhật ký con
- 9. Làm cách nào để định cấu hình ghi nhật ký cho plugin grails?
- 10. python2.7: cấu hình ghi nhật ký với yaml
- 11. Cách bạn định cấu hình ghi nhật ký trong Hibernate 4 để sử dụng SLF4J
- 12. Cách định cấu hình tất cả các trình ghi nhật ký trong một ứng dụng
- 13. Tập tin cấu hình ghi nhật ký Python
- 14. Định cấu hình ghi nhật ký cho plugin maven của Jetty?
- 15. Ghi nhật ký CherryPy: Làm cách nào để định cấu hình và sử dụng trình ghi nhật ký cấp độ toàn cầu và ứng dụng?
- 16. Ghi nhật ký Python trước khi bạn chạy logging.basicConfig?
- 17. Định cấu hình ghi nhật ký cho trình điều khiển Java MongoDB
- 18. Cách định cấu hình nhật thực để tự động lưu khi chạy?
- 19. Ghi nhật ký Java - cách chuyển hướng đầu ra sang tệp nhật ký tùy chỉnh cho trình ghi nhật ký?
- 20. Cách thiết lập ghi nhật ký Varnish?
- 21. Mức ghi nhật ký Android
- 22. Ghi nhật ký xoắn
- 23. Cách sử dụng tính năng ghi nhật ký với tệp python của python và định cấu hình tên tệp nhật ký
- 24. Cấu hình nhật thực nhật thực osgi
- 25. Cách định cấu hình nhật ký hệ thống để nhật ký ứng dụng truy cập vào một tệp cụ thể
- 26. Eclipse: xuất cấu hình chạy
- 27. ghi nhật ký log4net không tạo tệp nhật ký
- 28. Thay thế nhận xét java bằng cách ghi nhật ký trong hoặc trước khi chạy
- 29. Ghi nhật ký NSNotifications
- 30. Ghi nhật ký Python.DEBUG không ghi nhật ký