Java Jersey 如何阻止 loggingFilter 打印?
Java Jersey How can I block loggingFilter prints?
我正在使用 jersey
loggingFilter
class 打印所有 requests/responses 内容。
这是过滤器连接代码:
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.spring.scope.RequestContextFilter;
import com.ladpc.mobile.util.CORSResponseFilter;
import com.ladpc.mobile.util.LoggingResponseFilter;
/**
* Registers the components to be used by the JAX-RS application
*
* @author ama
*
*/
public class MobileApplication extends ResourceConfig {
/**
* Register JAX-RS application components.
*/
public MobileApplication() {
try {
register(RequestContextFilter.class);
register(TaskService.class);
register(LookupService.class);
register(UsersService.class);
register(PropertyService.class);
register(DocumentsPathService.class);
register(DocumentsService.class);
register(WorkPlanService.class);
register(IssueService.class);
register(ActionTypesService.class);
register(JacksonFeature.class);
register(LoggingResponseFilter.class);
register(MyApplicationEventListener.class);
registerInstances(new LoggingFilter(Logger.getLogger(MobileApplication.class.getName()), true));
register(CORSResponseFilter.class);
register(MultiPartFeature.class);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
问题:一些响应内容太长,因为它包含图像内容或pdf文件内容的字节数组,所以当客户端多次调用此服务时,日志文件被填满,其原因很多运行问题。
有一种方法可以阻止某些服务,这些服务不会由 loggingFilter class?
自动打印响应
谢谢。
我发现了...
在这一行中:
registerInstances(new LoggingFilter(Logger.getLogger(MobileApplication.class.getName()), true));
有c-tor调用,第二个参数是'boolean printEntity'-如果要打印响应内容则为true,否则为false....
因此将此行更改为:
registerInstances(new LoggingFilter(Logger.getLogger(MobileApplication.class.getName()), false));
可以解决这个问题。
我正在使用 jersey
loggingFilter
class 打印所有 requests/responses 内容。
这是过滤器连接代码:
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.spring.scope.RequestContextFilter;
import com.ladpc.mobile.util.CORSResponseFilter;
import com.ladpc.mobile.util.LoggingResponseFilter;
/**
* Registers the components to be used by the JAX-RS application
*
* @author ama
*
*/
public class MobileApplication extends ResourceConfig {
/**
* Register JAX-RS application components.
*/
public MobileApplication() {
try {
register(RequestContextFilter.class);
register(TaskService.class);
register(LookupService.class);
register(UsersService.class);
register(PropertyService.class);
register(DocumentsPathService.class);
register(DocumentsService.class);
register(WorkPlanService.class);
register(IssueService.class);
register(ActionTypesService.class);
register(JacksonFeature.class);
register(LoggingResponseFilter.class);
register(MyApplicationEventListener.class);
registerInstances(new LoggingFilter(Logger.getLogger(MobileApplication.class.getName()), true));
register(CORSResponseFilter.class);
register(MultiPartFeature.class);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
问题:一些响应内容太长,因为它包含图像内容或pdf文件内容的字节数组,所以当客户端多次调用此服务时,日志文件被填满,其原因很多运行问题。 有一种方法可以阻止某些服务,这些服务不会由 loggingFilter class?
自动打印响应谢谢。
我发现了... 在这一行中:
registerInstances(new LoggingFilter(Logger.getLogger(MobileApplication.class.getName()), true));
有c-tor调用,第二个参数是'boolean printEntity'-如果要打印响应内容则为true,否则为false....
因此将此行更改为:
registerInstances(new LoggingFilter(Logger.getLogger(MobileApplication.class.getName()), false));
可以解决这个问题。