0
Grizzly 서버에서 액세스 로그를 작성할 수 없습니다. 다음과 같이Grizzly 서버와 저지에서 액세스 로그가 비어 있습니다.
간단한 설정은 다음과 같습니다 자원의
import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.grizzly.http.server.accesslog.AccessLogBuilder;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.ServerProperties;
import java.net.URI;
import java.util.HashMap;
public class App {
public static void main(String[] args) throws Exception {
URI uri = new URI("http://localhost:12987/");
ResourceConfig rc = new ResourceConfig().registerClasses(Greeter.class);
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(uri, rc);
new AccessLogBuilder("hi.access.log").instrument(server.getServerConfiguration());
server.start();
}
}
코드 :
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/")
public class Greeter {
@GET
@Path("hi")
public String hi() { return "hi!"; }
}
종속 대한 설명과 버전이 포함
Gradle을 스크립트 :
buildscript {
ext.java_version = '1.8'
ext.jersey_version = '2.25.1'
repositories {
mavenCentral()
}
}
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile "javax.servlet:servlet-api:2.5"
compile "org.glassfish.jersey.core:jersey-server:$jersey_version"
compile "org.glassfish.jersey.containers:jersey-container-servlet-core:$jersey_version"
compile "org.glassfish.jersey.containers:jersey-container-grizzly2-http:$jersey_version"
}
내가 예상치 못한 행동 곳을 관찰을 액세스 로그 파일은 서버의 시작 부분과 함께 작성되지만 아무것도 기록되지 않습니다. 요청이있을 때. 서버는 응답을 보내고 다른 모든면에서 정상적으로 작동합니다.
저지를 디버깅하려고했지만 Jersey가 수 많은 반영 및 동적로드에 의존하기 때문에 도움이되지 않았습니다. 또한 모니터링을위한 속성을 추가하려고 시도했습니다. 특히 ServerProperties.MONITORING_ENABLED
이지만 다시는 아무 것도 변경하지 않았습니다.
액세스 로그 기능을 추가 또는 구성하려면 어떻게해야합니까?