diff --git a/src/content-server.cc b/src/content-server.cc
index 2432885..91b6561 100644
--- a/src/content-server.cc
+++ b/src/content-server.cc
@@ -64,6 +64,11 @@
 void
 ContentServer::serve(const Name &interest)
 {
+  int size = interest.size();
+  cout << ">>> Serving: " << interest.getPartialName(0, size - 2) << ", seq = " << interest.getCompAsInt(size -1) << endl;
+
+
+
   ReadLock lock(m_mutex);
   for (PrefixIt it = m_prefixes.begin(); it != m_prefixes.end(); ++it)
   {
diff --git a/src/fetcher.cc b/src/fetcher.cc
index 18e1484..e311461 100644
--- a/src/fetcher.cc
+++ b/src/fetcher.cc
@@ -94,7 +94,9 @@
       if (m_outOfOrderRecvSeqNo.find (m_minSendSeqNo+1) != m_outOfOrderRecvSeqNo.end ())
         continue;
 
-      _LOG_DEBUG (" >>> i " << Name (m_forwardingHint)(m_name)(m_minSendSeqNo+1));
+      Name x = Name(m_forwardingHint)(m_name)(m_minSendSeqNo+1);
+      int xsize = x.size();
+      _LOG_DEBUG (" >>> i " << x.getPartialName(0, xsize - 2) << ", seq = " << (m_minSendSeqNo + 1 ));
 
       // cout << ">>> " << m_minSendSeqNo+1 << endl;
       m_ccnx->sendInterest (Name (m_forwardingHint)(m_name)(m_minSendSeqNo+1),
diff --git a/src/object-db.cc b/src/object-db.cc
index 2243b99..991aab4 100644
--- a/src/object-db.cc
+++ b/src/object-db.cc
@@ -125,7 +125,7 @@
                       "(device_name, segment, content_object) "
                       "VALUES (?, ?, ?)", -1, &stmt, 0);
 
-  _LOG_DEBUG ("Saving content object for [" << deviceName << ", seqno: " << segment << ", size: " << data.size () << "]");
+  //_LOG_DEBUG ("Saving content object for [" << deviceName << ", seqno: " << segment << ", size: " << data.size () << "]");
 
   CcnxCharbufPtr buf = deviceName.toCcnxCharbuf ();
   sqlite3_bind_blob (stmt, 1, buf->buf (), buf->length (), SQLITE_TRANSIENT);
diff --git a/src/object-manager.cc b/src/object-manager.cc
index 848929e..4e98244 100644
--- a/src/object-manager.cc
+++ b/src/object-manager.cc
@@ -75,7 +75,7 @@
 
       // cout << *fileHash << endl;
       // cout << name << endl;
-      _LOG_DEBUG ("Read " << iff.gcount () << " from " << file << " for segment " << segment);
+      //_LOG_DEBUG ("Read " << iff.gcount () << " from " << file << " for segment " << segment);
 
       Bytes data = m_ccnx->createContentObject (name, buf, iff.gcount ());
       fileDb.saveContentObject (deviceName, segment, data);
