在我的输出中,我有像这样的来自 Jersey 的JUL日志记录消息
03.12.2010 14:14:55 com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
我以编程方式想将它们切掉,所以我尝试了
Logger.getLogger("com.sun.jersey.api.core.PackagesResourceConfig").setLevel( Level.SEVERE );
或者
Logger.getLogger("com.sun.jersey").setLevel( Level.SEVERE );
但这不起作用。
有趣的是,这种全局配置有效:
Logger.getLogger( "com" ).setLevel( Level.SEVERE );
或者
Logger.getLogger( "" ).setLevel( Level.SEVERE );
为什么?
最佳答案
我对此有一些问题,所以我认为我应该将代码与导入一起放入以避免混淆。我对此进行了测试,并且可以在我的小型Web服务器配置中使用。同样,为了完整起见,我包括了整个服务器的实现。
import java.io.IOException;
import java.net.URI;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ws.rs.core.UriBuilder;
import com.sun.jersey.api.container.httpserver.HttpServerFactory;
import com.sun.jersey.api.core.PackagesResourceConfig;
import com.sun.jersey.api.core.ResourceConfig;
import com.sun.net.httpserver.HttpServer;
public class WebServer {
private HttpServer webServer;
private final static Logger COM_SUN_JERSEY_LOGGER = Logger.getLogger( "com.sun.jersey" );
static {
COM_SUN_JERSEY_LOGGER.setLevel( Level.SEVERE );
}
public void start() throws IOException {
System.out.println("Starting WebServer\n");
webServer = createHttpServer();
webServer.start();
System.out.println(String.format("\nWeb Server started:" + "%sapplication.wadl\n", getURI()));
}
public void stop() {
webServer.stop(0);
}
public static HttpServer createHttpServer() throws IOException {
ResourceConfig rc = new PackagesResourceConfig("com.daford");
return HttpServerFactory.create(getURI(), rc);
}
private static URI getURI() {
return UriBuilder.fromUri("http://localhost/").port(4444).build();
}
}