Những biến nào tôi phải đặt / chuyển làm đối số cho JVM để log4j chạy đúng? Và theo đúng nghĩa tôi không phàn nàn và in ra bàn điều khiển. Tôi có thể xem một ví dụ điển hình không?
Lưu ý: Tôi cần tránh tạo tệp log4j.properIES trong ứng dụng.
Những biến nào tôi phải đặt / chuyển làm đối số cho JVM để log4j chạy đúng? Và theo đúng nghĩa tôi không phàn nàn và in ra bàn điều khiển. Tôi có thể xem một ví dụ điển hình không?
Lưu ý: Tôi cần tránh tạo tệp log4j.properIES trong ứng dụng.
Câu trả lời:
Bạn có tập tin cấu hình log4j không? Chỉ cần tham khảo nó bằng cách sử dụng
-Dlog4j.configuration={path to file}
trong đó {đường dẫn đến tệp} nên được bắt đầu bằng file:
Chỉnh sửa: Nếu bạn đang làm việc với log4j2, bạn cần sử dụng
-Dlog4j.configurationFile={path to file}
Lấy từ câu trả lời https://stackoverflow.com/a 432001970/552525
{path to file}
cần phải được chuẩn bị trước file:
để làm việc này.
Giải pháp đang sử dụng đối số JVM sau:
-Dlog4j.configuration={path to file}
Nếu tệp KHÔNG ở đường dẫn lớp ( WEB-INF/classes
trong trường hợp Tomcat) nhưng ở đâu đó trên đĩa của bạn, hãy sử dụng file:
, như
-Dlog4j.configuration=file:C:\Users\me\log4j.xml
Thêm thông tin và ví dụ tại đây: http://logging.apache.org/log4j/1.2/manual.html
-Dlogback.configurationFile=C:\logback-test.xml
-Dlog4j.debug
Điều này dường như đã thay đổi (có thể với log4j2) thành:
-Dlog4j.configurationFile=file:C:\Users\me\log4j.xml
Xem: https://logging.apache.org/log4j/2.x/manual/configuration.html
JAVA_PARAMS="-Dlog4j.configurationFile=classpath:log4j2-container.xml"
nếu Docker Image hỗ trợ ghi đè JAVA_PARAMS bằng các env vars và tệp nằm trong Jar.
Tôi biết điều này đã được trả lời, nhưng vì bạn đã nói, đây không chính xác là những gì bạn đang tìm kiếm, tôi muốn chỉ ra giải pháp thay thế sau:
Bạn cũng có thể sử dụng một lớp cấu hình thay vì các thuộc tính hoặc tệp xml.
-Dlog4j.configuratorClass=com.foo.BarConfigurator
Xem http://logging.apache.org/log4j/1.2/manual.html để biết chi tiết.
Nói chung, miễn là tệp log4j.properIES của bạn nằm trên đường dẫn lớp, Log4j sẽ tự động chọn nó khi khởi động JVM.
Đến bữa tiệc muộn kể từ năm 2015, Log4J 1.x đã đạt EOL .
Log4J 2.x trở đi tùy chọn JVM sẽ là-Dlog4j.configurationFile=<filename>
PS <filename>
có thể là một tập tin liên quan đến các đường dẫn lớp mà không cần sự file:
như đề xuất trong câu trả lời khác.