Java CXF呼叫持续时间日志记录

Java CXF呼叫持续时间日志记录,java,logging,cxf,Java,Logging,Cxf,我正在使用定制的cxf拦截器来记录服务调用的请求/响应,我希望记录调用和响应所花费的时间 有没有办法做到这一点 您需要将开始时间存储到您的in-interceptor(如果您是服务器,如果您是客户端,则存储到out-interceptor)中的Exchange 并在out(分别在in)拦截器中检索它 long timeTaken = System.currentTimeMillis() - (Long)message.getExchange().get("com.myapp.startTime"

我正在使用定制的cxf拦截器来记录服务调用的请求/响应,我希望记录调用和响应所花费的时间


有没有办法做到这一点

您需要将开始时间存储到您的in-interceptor(如果您是服务器,如果您是客户端,则存储到out-interceptor)中的
Exchange

并在out(分别在in)拦截器中检索它

long timeTaken = System.currentTimeMillis() - (Long)message.getExchange().get("com.myapp.startTime");

根据现有拦截器在链中的确切位置,您可能希望在一对专用的拦截器中执行此操作,在链中尽可能早地输入一个拦截器,在链中尽可能晚地输出一个拦截器(对于服务器,如果您是客户机,则反之亦然)。

这是线程安全的吗?我可以从另一个请求中获取
com.myapp.startTime
long timeTaken = System.currentTimeMillis() - (Long)message.getExchange().get("com.myapp.startTime");