2012-03-03 20 views
8

Tôi đã cài đặt Tomcat và sử dụng SLF4J làm khung đăng nhập của chúng tôi. Tôi đã sao chép slf4j-api-1.6.4.jarslf4j-jdk14-1.6.4.jar vào thư viện Tomcat, ví dụ: $TOMCAT_HOME/lib.SL4JF trong Tomcat không hiển thị trong các tệp nhật ký

Tôi giả định rằng nếu tôi sử dụng SLF4J, nó sẽ ủy quyền cho java.util.Logger, sẽ ủy quyền cho khung khai thác cơ bản Tomcat. Nhưng khi tôi triển khai và kiểm tra ứng dụng của tôi, tôi không thấy bất cứ điều gì nhận được đăng nhập. Tất cả thông tin ngoại lệ/nhật ký của tôi đều bị mất.

Sự hiểu biết của tôi có đúng không, hoặc tôi có bỏ lỡ bất cứ điều gì để giữ trong lớp học không?

+0

Cấu hình của bạn có vẻ đúng với tôi, vui lòng thêm tệp cấu hình JUL của bạn (logging.properties). – foch

+0

Bạn có thể xem https://github.com/grgrzybek/tomcat-slf4j-logback cho dự án thay thế Tomcat JULI bằng SLF4J + Logback thuần túy không xung đột với cấu hình đăng nhập WAR riêng lẻ –

+0

foch, tôi sử dụng ghi nhật ký mặc định. các thuộc tính được vận chuyển với cài đặt máy chủ. Grzegorz Grzybek, cảm ơn liên kết. nhưng tôi muốn biết tại sao bằng cách defalt nó không hoạt động. điều này có nghĩa là SL4J không hữu ích nếu chúng ta đang sử dụng tomcat? –

Trả lời

2

Thay vì sao chép slf4j-api-1.6.4.jar và slf4j-jdk14-1.6.4.jar dưới $ TOMCAT/lib, tôi đã chuyển các lọ này bằng ứng dụng chiến tranh. trong trường hợp này, ngoại lệ của tôi đang được ghi lại.

+0

Tệp cấu hình nào đã được chọn khi bạn gửi các lọ này bằng ứng dụng chiến tranh? Điều này hoàn toàn khác với những gì bạn đã hỏi ban đầu. –

+1

@Surya, nhiều người cảm ơn câu hỏi và câu trả lời. Gần đây, tôi mới bắt đầu sử dụng TomEE 1.5.1 (tomcat 7.0.32+) và tôi đã cố gắng lấy ngoại lệ và đăng xuất vào tệp nhật ký catalina trong khi chạy TomEE dưới dạng dịch vụ Windows (qua dịch vụ cửa sổ tomcat7) và tôi đã tìm kiếm và đã tìm kiếm chủ đề này hàng giờ, và câu trả lời này cuối cùng đã giúp tôi. cảm ơn bạn rất nhiều! – Howard

1

Có lẽ những gì bạn cần là thêm thuộc tính hệ thống vào CATALINA_OPTS của bạn.

Đối với các hệ thống Windows, thêm vào% CATALINA_HOME \ bin tập tin \ catalina.bat của bạn:

set CATALINA_OPTS=-Djava.util.logging.config.file=\PATH\TO\YOUR\logging.properties 

hoặc trên các hệ thống Linux/UNIX, thêm vào $ CATALINA_HOME/bin/file catalina.sh của bạn:

CATALINA_OPTS=-Djava.util.logging.config.file=/PATH/TO/YOUR/logging.properties 

Đừng quên rằng trong các hệ thống Linux/UNIX, bạn cần báo giá nếu bạn có nhiều thông số trong CATALINA_OPTS, ví dụ:

CATALINA_OPTS="-Xmx256m -Djava.util.logging.config.file=/PATH/TO/YOUR/logging.properties" 

Dòng này đảm bảo rằng tệp logging.properties của bạn đang được tải khi Tomcat được khởi động.

+0

Tôi có thể thấy tệp nhật ký được điền khi một ngoại lệ được ném từ ứng dụng của tôi. nhưng khi tôi cố gắng đăng nhập một cách rõ ràng thất bại của nó. cũng khi tôi kiểm tra catalina.sh, tôi có thể thấy rằng logging.properties đang được đặt thành tệp thuộc tính chính xác –

1

Bạn có thể định cấu hình Tomcat để sử dụng log4j như được mô tả in its docs, đặt log4j.properties vào thư mục $ CATALINA_HOME/lib và sử dụng slf4j-api với cầu slf4j-log4j12. Vì vậy, bạn đã có API slf4j sạch và độ đẹp log4j như DailyRollingFileAppender v.v.

+0

câu hỏi là về "java.util.Logger" - đăng nhập mặc định cho tomcat chứ không phải về log4j. – dermoritz

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