2011-08-15 40 views
7

Làm cách nào để định cấu hình cầu cảng để sử dụng log4j? Tôi đã sử dụng log4j trong ứng dụng của tôi, trong khi jetty đăng nhập vào stderr ...cách cấu hình cầu cảng để sử dụng log4j?

import org.apache.log4j.Logger; 
import org.apache.log4j.PropertyConfigurator; 
import org.eclipse.jetty.server.Connector; 
import org.eclipse.jetty.server.Server; 
import org.eclipse.jetty.server.nio.SelectChannelConnector; 
import org.eclipse.jetty.servlet.ServletContextHandler; 
import org.eclipse.jetty.servlet.ServletHolder; 

public class Test { 

    static final Logger logger = Logger.getLogger(Test.class); 

    public static void main(String[] args) { 

     PropertyConfigurator.configure("log4j.properties"); 
     logger.info("Started."); 

     Server server = new Server(); 

     Connector connector = new SelectChannelConnector(); 
     connector.setHost("127.0.0.1"); 
     connector.setPort(8080);  

     ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); 
     context.setContextPath("/"); 
     context.addServlet(new ServletHolder(new ServletHome()), "/");      

     // disable jettys default logger 
     //org.eclipse.jetty.util.log.Log.setLog(null); 

     server.addConnector(connector); 
     server.setHandler(context); 

     logger.debug("Starting jetty."); 
     try { 
      server.start(); 
      server.join(); 
     } catch (Exception e) { 
      logger.error("Ooops."); 
     } 

     logger.info("Finished."); 
    } 
} 
+0

Cảm ơn bạn @musiKk. Tôi đã thêm slf4j-api.jar slf4j-log4j.jar vào classpath của mình và nó đã thực sự được tự động kết nối. Có thể cần lưu ý rằng cầu cảng rất ồn khi việc ghi nhật ký gỡ lỗi được bật trong log4j, vì vậy tôi đã thêm vào log4j.properties để giảm tiếng ồn: 'log4j.logger.org.eclipse.jetty = INFO' – phatypus

+0

Có , điều đó khá phổ biến. Mức độ gỡ lỗi thường rất tiết và đôi khi nó có ý nghĩa để kích hoạt có chọn lọc hoặc hủy kích hoạt các gói để có được đầu ra hợp lý hơn. – musiKk

Trả lời

9

Cầu cảng sử dụng slf4j for logging. slf4j cho phép API ghi nhật ký hợp nhất kết nối với bất kỳ khung ghi nhật ký được hỗ trợ nào. Tất nhiên log4j cũng được hỗ trợ. Tất cả những gì bạn phải làm là đặt cả API slf4j và đầu nối slf4j-log4j vào đường dẫn lớp của bạn. Nó sẽ nhận được tự động có dây.

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