Index: trunk/src/main/java/omq/server/InvocationThread.java
===================================================================
--- trunk/src/main/java/omq/server/InvocationThread.java	(revision 47)
+++ trunk/src/main/java/omq/server/InvocationThread.java	(revision 49)
@@ -8,4 +8,6 @@
 import omq.common.util.Serializer;
 import omq.exception.OmqException;
+
+import org.apache.log4j.Logger;
 
 import com.rabbitmq.client.AMQP.BasicProperties;
@@ -19,4 +21,5 @@
  */
 public class InvocationThread extends Thread {
+	private static final Logger logger = Logger.getLogger(InvocationThread.class.getName());
 	private RemoteObject obj;
 	private BlockingQueue<Delivery> deliveryQueue;
@@ -44,5 +47,5 @@
 				String requestID = request.getId();
 
-				System.out.println("Invoke method: " + methodName + " CorrID: " + requestID);
+				logger.debug("Object: " + obj.getRef() + ", method: " + methodName + " corrID: " + requestID);
 
 				// Invoke the method
@@ -53,6 +56,8 @@
 				} catch (InvocationTargetException e) {
 					Throwable throwable = e.getTargetException();
+					logger.error("Object: " + obj.getRef() + " at method: " + methodName + ", corrID" + requestID, throwable);
 					error = new OmqException(throwable.getClass().getCanonicalName(), throwable.getMessage());
 				} catch (NoSuchMethodException e) {
+					logger.error("Object: " + obj.getRef() + " cannot find method: " + methodName);
 					error = new OmqException(e.getClass().getCanonicalName(), e.getMessage());
 				}
@@ -75,9 +80,8 @@
 
 			} catch (InterruptedException i) {
-				i.printStackTrace();
+				logger.error(i);
 				killed = true;
 			} catch (Exception e) {
-				System.out.println("Error a l'Invocation Thread \nException: " + e);
-				e.printStackTrace();
+				logger.error("Object: " + obj.getRef(), e);
 			}
 
Index: trunk/src/main/java/omq/server/RemoteObject.java
===================================================================
--- trunk/src/main/java/omq/server/RemoteObject.java	(revision 47)
+++ trunk/src/main/java/omq/server/RemoteObject.java	(revision 49)
@@ -10,4 +10,6 @@
 import java.util.Properties;
 
+import org.apache.log4j.Logger;
+
 import omq.Remote;
 import omq.common.broker.Broker;
@@ -33,4 +35,5 @@
 
 	private static final long serialVersionUID = -1778953938739846450L;
+	private static final Logger logger = Logger.getLogger(RemoteObject.class.getName());
 
 	private String UID;
@@ -85,10 +88,12 @@
 			try {
 				Delivery delivery = consumer.nextDelivery();
-				System.out.println("RemoteObject: " + UID + " has received a message");
+
+				logger.debug(UID + " has received a message");
+
 				remoteWrapper.notifyDelivery(delivery);
 			} catch (InterruptedException i) {
-				i.printStackTrace();
+				logger.error(i);
 			} catch (ShutdownSignalException e) {
-				e.printStackTrace();
+				logger.error(e);
 				try {
 					if (channel.isOpen()) {
@@ -101,14 +106,14 @@
 						Thread.sleep(milis);
 					} catch (InterruptedException e2) {
-						e2.printStackTrace();
-					}
-					e1.printStackTrace();
+						logger.error(e2);
+					}
+					logger.error(e1);
 				}
 			} catch (ConsumerCancelledException e) {
-				e.printStackTrace();
+				logger.error(e);
 			} catch (SerializerException e) {
-				e.printStackTrace();
+				logger.error(e);
 			} catch (Exception e) {
-				e.printStackTrace();
+				logger.error(e);
 			}
 		}
@@ -129,4 +134,5 @@
 
 	public void kill() throws IOException {
+		logger.warn("Killing objectmq: " + this.getRef());
 		killed = true;
 		interrupt();
@@ -218,5 +224,5 @@
 
 		// Declares and bindings
-		System.out.println("RemoteObject: " + UID + " declaring direct exchange: " + exchange + ", Queue: " + queue);
+		logger.info("RemoteObject: " + UID + " declaring direct exchange: " + exchange + ", Queue: " + queue);
 		channel.exchangeDeclare(exchange, "direct");
 		channel.queueDeclare(queue, durable, false, false, null);
@@ -224,5 +230,5 @@
 
 		// Declare the event topic fanout
-		System.out.println("RemoteObject: " + UID + " declaring fanout exchange: " + UID);
+		logger.info("RemoteObject: " + UID + " declaring fanout exchange: " + UID);
 		channel.exchangeDeclare(UID, "fanout");
 
Index: trunk/src/main/java/omq/server/RemoteWrapper.java
===================================================================
--- trunk/src/main/java/omq/server/RemoteWrapper.java	(revision 47)
+++ trunk/src/main/java/omq/server/RemoteWrapper.java	(revision 49)
@@ -4,4 +4,6 @@
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingDeque;
+
+import org.apache.log4j.Logger;
 
 import com.rabbitmq.client.QueueingConsumer;
@@ -14,4 +16,6 @@
  */
 public class RemoteWrapper {
+	private static final Logger logger = Logger.getLogger(RemoteWrapper.class.getName());
+
 	private RemoteObject obj;
 	private int numThreads;
@@ -25,5 +29,5 @@
 		deliveryQueue = new LinkedBlockingDeque<QueueingConsumer.Delivery>();
 
-		System.out.println("RemoteWrapper -> Object: " + obj.getRef() + ", numthreads listening = " + numThreads);
+		logger.info("Object reference: " + obj.getRef() + ", numthreads listening = " + numThreads);
 
 		for (int i = 0; i < numThreads; i++) {
@@ -39,4 +43,5 @@
 
 	public void stopRemoteWrapper() {
+		logger.warn("Stopping Invocation threads vinculed to " + obj.getRef());
 		for (InvocationThread thread : invocationList) {
 			thread.interrupt();
