private void setupTraceLog(HttpContext httpContext, String queue, AccessLog accessLog) throws IOException { String clientIp = httpContext.getClientIp(); // DBへのアクセスログ採取有無 if (!isLogging(clientIp, "accessDb." + queue)) { return; } // DBに記録する accessLog.insert(); // リクエストStreamのpeek処理 if (isLogging(clientIp, "accessTrace.request." + queue)) { PeekStream requestPeeker = accessLog.setupPeekRequest(); httpContext.peekRequest(requestPeeker); context.enque(requestPeeker, Config.QUEUE_PEEK); // 既に受け取っているヘッダ部分をPeekStreamに流し込む HttpParser requestParser = httpContext.getRequestParser(); OutputStream os = requestPeeker.getPeekOutputStream(); requestParser.writeSeriarizeHeader(os); } // レスポンスStreamのpeek処理 if (isLogging(clientIp, "accessTrace.response." + queue)) { PeekStream responsePeeker = accessLog.setupPeekResponse(); httpContext.peekResponse(responsePeeker); context.enque(responsePeeker, Config.QUEUE_PEEK); } }