2012-02-10 31 views
27

Tôi đang cố gắng đặt mức ghi nhật ký thành DEBUG trong một phiên bản Jetty được nhúng.Làm cách nào để bật ghi nhật ký mức DEBUG với Jetty được nhúng?

Các tài liệu tại http://docs.codehaus.org/display/JETTY/Debugging nói đến -

gọi SystemProperty.set ("DEBUG", "true") trước khi gọi mới org.mortbay.jetty.Server().

Tôi không chắc chắn lớp học nào là SystemProperty, dường như nó không được ghi lại ở bất cứ đâu. Tôi đã thử System.setProperty(), nhưng điều đó không làm được điều đó.

+0

Phiên bản cầu tàu nào?Bạn có khung công tác ghi nhật ký nào trên classpath? – Tim

+0

Tôi đang sử dụng Jetty 7.5.4 vào lúc này, nhưng thực sự có thể sử dụng bất kỳ phiên bản nào. Để đăng nhập, tôi đang sử dụng log4j cho mã không phải Jetty của tôi và chỉ cho phép SLF4J trong JEtty mặc định để thực hiện trình ghi nhật ký NOP (nó ghi vào bảng điều khiển gỡ lỗi, đó là tất cả những gì tôi cần). – HolySamosa

Trả lời

24

Câu hỏi của tôi đã được trả lời trên mailing list Jetty bởi Joakim Erdfelt:

Bạn đang xem xét các tài liệu Jetty 6.x cũ tại docs.codehaus.org.

Ghi nhật ký DEBUG chỉ là mức ghi nhật ký được xác định bằng cách thực hiện đăng nhập bạn chọn sử dụng.

-D {} classref .LEVEL = {} mức

đâu {classref} là tài liệu tham khảo lớp học mà bạn muốn thiết lập mức độ trên, và tất cả các refs sub-class. và {level} là một trong các giá trị ALL, DEBUG, INFO, WARN

Ví dụ: -Dorg.eclipse.jetty.LEVEL = INFO - điều này sẽ cho phép ghi nhật ký mức INFO cho tất cả các gói/lớp cầu cảng. -Dorg.eclipse.jetty.io.LEVEL = DEBUG - điều này sẽ cho phép ghi nhật ký mức DEBUG cho các lớp IO chỉ -Dorg.eclipse.jetty.servlet.LEVEL = ALL - điều này sẽ cho phép TẤT CẢ ghi nhật ký (các sự kiện theo dõi, ngoại lệ bị bỏ qua trong nội bộ , vv ..) cho các gói servlet . -Dorg.eclipse.jetty.util.thread.QueuedThreadPool.LEVEL = ALL - điều này sẽ cho phép cấp ALL + chỉ trên lớp cụ thể.

11

Trong trường hợp bạn chỉ muốn nhanh chóng có được đăng tin nhắn đến thiết bị lỗi chuẩn thêm một cái gì đó như thế này để java dòng lệnh:

-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -D{classref}.LEVEL=DEBUG 
8

Thêm này

-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog 
-Dorg.eclipse.jetty.LEVEL=DEBUG 

Snap of Eclipse Configuration

+1

+1, đây là giải pháp duy nhất có hiệu quả đối với tôi, mặc dù tôi không hiểu tại sao tùy chọn đầu tiên lại cần thiết cho giải pháp thứ hai ... –

+0

Tôi mất 4 giờ để tìm thấy điều này, nhưng ở đây. Cảm ơn. – Richard

0

Bạn có thể sử dụng đoạn mã này để bật ghi nhật ký:

import org.eclipse.jetty.util.log.Log; 
import org.eclipse.jetty.util.log.StdErrLog; 
. 
. 
. 
StdErrLog logger = new StdErrLog(); 
logger.setDebugEnabled(true); 
Log.setLog(logger); 
Các vấn đề liên quan