summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-05-01 11:10:06 +0200
committerKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-05-01 11:10:06 +0200
commit01d0993aa195fbdc2a01591ffb059d8e6917ba68 (patch)
tree1862de701387cb2b3863c41d68c0e76fda7a6bda
parente77a91ea3842e46e93e03ce89fb6b4b0d90c2999 (diff)
Add support for RPC logging.
-rw-r--r--src/main/java/com/orbekk/protobuf/RequestDispatcher.java14
-rw-r--r--src/main/java/com/orbekk/protobuf/RpcChannel.java10
2 files changed, 23 insertions, 1 deletions
diff --git a/src/main/java/com/orbekk/protobuf/RequestDispatcher.java b/src/main/java/com/orbekk/protobuf/RequestDispatcher.java
index 3076d7e..b0a4600 100644
--- a/src/main/java/com/orbekk/protobuf/RequestDispatcher.java
+++ b/src/main/java/com/orbekk/protobuf/RequestDispatcher.java
@@ -1,8 +1,9 @@
package com.orbekk.protobuf;
-import java.io.IOException;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import com.google.protobuf.Descriptors;
import com.google.protobuf.InvalidProtocolBufferException;
@@ -11,6 +12,7 @@ import com.google.protobuf.RpcCallback;
import com.google.protobuf.Service;
public class RequestDispatcher extends Thread {
+ private static final Logger logger = Logger.getLogger(RequestDispatcher.class.getName());
public static int DEFAULT_QUEUE_SIZE = 5;
private volatile boolean isStopped = false;
private final BlockingQueue<Data.Response> output;
@@ -33,6 +35,10 @@ public class RequestDispatcher extends Thread {
if (responseMessage != null) {
response.setResponseProto(responseMessage.toByteString());
}
+ if (logger.isLoggable(Level.FINER)) {
+ logger.finer(String.format("I(%d): %s <= ",
+ request.getRequestId(), responseMessage));
+ }
rpc.writeTo(response);
try {
output.put(response.build());
@@ -78,6 +84,12 @@ public class RequestDispatcher extends Thread {
return;
}
+ if (logger.isLoggable(Level.FINER)) {
+ logger.fine(String.format("I(%d) => %s(%s)",
+ request.getRequestId(),
+ method.getFullName(),
+ requestMessage));
+ }
response.setRequestId(request.getRequestId());
service.callMethod(method, rpc, requestMessage, callback);
}
diff --git a/src/main/java/com/orbekk/protobuf/RpcChannel.java b/src/main/java/com/orbekk/protobuf/RpcChannel.java
index 594cff8..c30254b 100644
--- a/src/main/java/com/orbekk/protobuf/RpcChannel.java
+++ b/src/main/java/com/orbekk/protobuf/RpcChannel.java
@@ -238,6 +238,11 @@ public class RpcChannel implements com.google.protobuf.RpcChannel {
addTimeoutHandler(request_);
ongoingRequests.put(id, request_);
+ if (logger.isLoggable(Level.FINER)) {
+ logger.finer(String.format("O(%d) => %s(%s)",
+ id, method.getFullName(), requestMessage));
+ }
+
Data.Request requestData = Data.Request.newBuilder()
.setRequestId(id)
.setFullServiceName(method.getService().getFullName())
@@ -275,6 +280,11 @@ public class RpcChannel implements com.google.protobuf.RpcChannel {
try {
Message responsePb = request.responsePrototype.toBuilder()
.mergeFrom(response.getResponseProto()).build();
+ if (logger.isLoggable(Level.FINER)) {
+ logger.finer(String.format("O(%d) <= %s",
+ response.getRequestId(),
+ responsePb));
+ }
request.rpc.readFrom(response);
request.done.run(responsePb);
request.rpc.complete();