Java 删除向导请求响应日志记录

Java 删除向导请求响应日志记录,java,jakarta-ee,jersey,dropwizard,jersey-client,Java,Jakarta Ee,Jersey,Dropwizard,Jersey Client,我想将dropwizard中的每个请求和响应记录到不同的文件中。例如,我希望所有请求都记录到/var/log/applicationname request.log中,所有响应都记录到/var/log/applicationname response.log 有什么方法可以达到同样的效果吗?不幸的是,DropWizard目前本机不支持此功能。有关更多信息,请参阅 幸运的是,如果您愿意放弃使用DropWizard配置日志记录,那么有一个解决方法。在run方法的某个地方,调用以下代码重置日志记录,并

我想将dropwizard中的每个请求和响应记录到不同的文件中。例如,我希望所有请求都记录到/var/log/applicationname request.log中,所有响应都记录到/var/log/applicationname response.log


有什么方法可以达到同样的效果吗?

不幸的是,DropWizard目前本机不支持此功能。有关更多信息,请参阅

幸运的是,如果您愿意放弃使用DropWizard配置日志记录,那么有一个解决方法。在
run
方法的某个地方,调用以下代码重置日志记录,并使用sfl4j的标准机制重新配置它:

LoggerContext context=(LoggerContext)LoggerFactory.getILoggerFactory();
reset();
ContextInitializer initializer=新的ContextInitializer(上下文);
initializer.autoConfig();
然后,您可以通过将
logback.xml
添加到类路径并对其进行如下配置来配置日志记录:


/var/log/applicationname-request.log
假的
%-5相对%5级别%logger{35}-%msg%n
/var/log/applicationame-response.log
假的
%-5相对%5级别%logger{35}-%msg%n
%d{HH:mm:ss.SSS}[%thread]-5级别%logger{36}-%msg%n
然后,您可以抓取资源中相应的记录器并注销:

static final Logger REQUEST\u LOG=LoggerFactory.getLogger(“org.example.REQUEST”);
静态最终记录器响应_LOG=LoggerFactory.getLogger(“org.example.RESPONSE”);

谢谢,这样很好用。我们可以在删除向导配置中绑定此记录器吗?因此,drop wizard可以将其用于其内部日志记录。我认为您无法在drop wizard配置中设置此日志记录程序,因为当您重新初始化日志记录时,这将丢失。但您可以在logback中为DropWizard类添加单独的记录器。xml@condit我认为这已经过时了。。。它是?