diff --git a/core/commands/block.go b/core/commands/block.go
index 0813e9c3c8807cf342a16e097912cce30beabc8c..2448d6977a65dc1309c5636ed8252f719f1e63f3 100644
--- a/core/commands/block.go
+++ b/core/commands/block.go
@@ -28,7 +28,7 @@ func BlockGet(n *core.IpfsNode, args []string, opts map[string]interface{}, out
 	}
 
 	k := u.Key(h)
-	log.Debug("BlockGet key: '%q'", k)
+	log.Debugf("BlockGet key: '%q'", k)
 	ctx, _ := context.WithTimeout(context.TODO(), time.Second*5)
 	b, err := n.Blocks.GetBlock(ctx, k)
 	if err != nil {
@@ -48,7 +48,7 @@ func BlockPut(n *core.IpfsNode, args []string, opts map[string]interface{}, out
 	}
 
 	b := blocks.NewBlock(data)
-	log.Debug("BlockPut key: '%q'", b.Key())
+	log.Debugf("BlockPut key: '%q'", b.Key())
 
 	k, err := n.Blocks.AddBlock(b)
 	if err != nil {
diff --git a/core/commands/object.go b/core/commands/object.go
index 5d0ccddabc62087951a7bb92dfa628ea3c0b6435..24386a173c0715b1d32222ce4e5395c9dabb463a 100644
--- a/core/commands/object.go
+++ b/core/commands/object.go
@@ -19,7 +19,7 @@ func ObjectData(n *core.IpfsNode, args []string, opts map[string]interface{}, ou
 	if err != nil {
 		return fmt.Errorf("objectData error: %v", err)
 	}
-	log.Debug("objectData: found dagnode %q (# of bytes: %d - # links: %d)", args[0], len(dagnode.Data), len(dagnode.Links))
+	log.Debugf("objectData: found dagnode %q (# of bytes: %d - # links: %d)", args[0], len(dagnode.Data), len(dagnode.Links))
 
 	_, err = io.Copy(out, bytes.NewReader(dagnode.Data))
 	return err
@@ -31,7 +31,7 @@ func ObjectLinks(n *core.IpfsNode, args []string, opts map[string]interface{}, o
 	if err != nil {
 		return fmt.Errorf("objectLinks error: %v", err)
 	}
-	log.Debug("ObjectLinks: found dagnode %q (# of bytes: %d - # links: %d)", args[0], len(dagnode.Data), len(dagnode.Links))
+	log.Debugf("ObjectLinks: found dagnode %q (# of bytes: %d - # links: %d)", args[0], len(dagnode.Data), len(dagnode.Links))
 
 	for _, link := range dagnode.Links {
 		_, err = fmt.Fprintf(out, "%s %d %q\n", link.Hash.B58String(), link.Size, link.Name)
@@ -70,7 +70,7 @@ func ObjectGet(n *core.IpfsNode, args []string, opts map[string]interface{}, out
 	if err != nil {
 		return fmt.Errorf("ObjectGet error: %v", err)
 	}
-	log.Debug("objectGet: found dagnode %q (# of bytes: %d - # links: %d)", args[0], len(dagnode.Data), len(dagnode.Links))
+	log.Debugf("objectGet: found dagnode %q (# of bytes: %d - # links: %d)", args[0], len(dagnode.Data), len(dagnode.Links))
 
 	// sadly all encodings dont implement a common interface
 	var data []byte
diff --git a/daemon/daemon.go b/daemon/daemon.go
index c8c150a8d163796b01721cc8618a32ba9f101711..dfddf0625ad4e0b90b5edc4cd6e4e73a784235b3 100644
--- a/daemon/daemon.go
+++ b/daemon/daemon.go
@@ -117,7 +117,7 @@ func (dl *DaemonListener) handleConnection(conn manet.Conn) {
 		return
 	}
 
-	log.Debug("Got command: %v", command)
+	log.Debugf("Got command: %v", command)
 	switch command.Command {
 	case "add":
 		err = commands.Add(dl.node, command.Args, command.Opts, conn)
diff --git a/daemon/daemon_client.go b/daemon/daemon_client.go
index 031d439c4a83aad22c7faea7aafdd63ba46d5848..e894756e7f8fcf3574a0e2645598fe7b14a54c77 100644
--- a/daemon/daemon_client.go
+++ b/daemon/daemon_client.go
@@ -25,7 +25,7 @@ func getDaemonAddr(confdir string) (string, error) {
 	}
 	fi, err := os.Open(confdir + "/rpcaddress")
 	if err != nil {
-		log.Debug("getDaemonAddr failed: %s", err)
+		log.Debugf("getDaemonAddr failed: %s", err)
 		if err == os.ErrNotExist {
 			return "", ErrDaemonNotRunning
 		}
diff --git a/fuse/ipns/link_unix.go b/fuse/ipns/link_unix.go
index e81576c6e66ae6ae466b8ae9d18beb5edc591cd5..fcaada15f1426b51b24c48a1375b8057e4d5b2cb 100644
--- a/fuse/ipns/link_unix.go
+++ b/fuse/ipns/link_unix.go
@@ -19,6 +19,6 @@ func (l *Link) Attr() fuse.Attr {
 }
 
 func (l *Link) Readlink(req *fuse.ReadlinkRequest, intr fs.Intr) (string, fuse.Error) {
-	log.Debug("ReadLink: %s", l.Target)
+	log.Debugf("ReadLink: %s", l.Target)
 	return l.Target, nil
 }
diff --git a/fuse/readonly/readonly_unix.go b/fuse/readonly/readonly_unix.go
index de72a71646e009ae7d40f4785c33ce5648ee4b06..e3623547342c5efd477fdcdcbe967d26903b9d17 100644
--- a/fuse/readonly/readonly_unix.go
+++ b/fuse/readonly/readonly_unix.go
@@ -113,7 +113,7 @@ func (s *Node) Attr() fuse.Attr {
 
 // Lookup performs a lookup under this node.
 func (s *Node) Lookup(name string, intr fs.Intr) (fs.Node, fuse.Error) {
-	log.Debug("Lookup '%s'", name)
+	log.Debugf("Lookup '%s'", name)
 	nd, err := s.Ipfs.Resolver.ResolveLinks(s.Nd, []string{name})
 	if err != nil {
 		// todo: make this error more versatile.
diff --git a/merkledag/merkledag.go b/merkledag/merkledag.go
index 92fa6e48efaa793482051f0768ff725d9225fa22..3134899bd634ffdc8668a05d9e736e54471fff64 100644
--- a/merkledag/merkledag.go
+++ b/merkledag/merkledag.go
@@ -175,7 +175,7 @@ type dagService struct {
 // Add adds a node to the dagService, storing the block in the BlockService
 func (n *dagService) Add(nd *Node) (u.Key, error) {
 	k, _ := nd.Key()
-	log.Debug("DagService Add [%s]", k)
+	log.Debugf("DagService Add [%s]", k)
 	if n == nil {
 		return "", fmt.Errorf("dagService is nil")
 	}
diff --git a/namesys/publisher.go b/namesys/publisher.go
index 7203fb1d4a493104bc3955420538004b5313fde0..d95f1cbbcf986f1603e7aab749f0dfc788680259 100644
--- a/namesys/publisher.go
+++ b/namesys/publisher.go
@@ -27,7 +27,7 @@ func NewRoutingPublisher(route routing.IpfsRouting) Publisher {
 
 // Publish implements Publisher. Accepts a keypair and a value,
 func (p *ipnsPublisher) Publish(k ci.PrivKey, value string) error {
-	log.Debug("namesys: Publish %s", value)
+	log.Debugf("namesys: Publish %s", value)
 
 	// validate `value` is a ref (multihash)
 	_, err := mh.FromB58String(value)
diff --git a/namesys/routing.go b/namesys/routing.go
index ce1755f69249be5ef890b02587f3616bc050448c..6259705ec92c56fa154d588ff4c5bf68b4d0878d 100644
--- a/namesys/routing.go
+++ b/namesys/routing.go
@@ -35,7 +35,7 @@ func (r *routingResolver) CanResolve(name string) bool {
 // Resolve implements Resolver. Uses the IPFS routing system to resolve SFS-like
 // names.
 func (r *routingResolver) Resolve(name string) (string, error) {
-	log.Debug("RoutingResolve: '%s'", name)
+	log.Debugf("RoutingResolve: '%s'", name)
 	ctx := context.TODO()
 	hash, err := mh.FromB58String(name)
 	if err != nil {
diff --git a/net/conn/conn.go b/net/conn/conn.go
index 3df82d15d5215d09cbad15dc78f1fbfc8e73579a..eb262c9fa2a84e15e2aa07e70b9559463e5bfcbc 100644
--- a/net/conn/conn.go
+++ b/net/conn/conn.go
@@ -89,7 +89,7 @@ func newSingleConn(ctx context.Context, local, remote peer.Peer,
 
 // close is the internal close function, called by ContextCloser.Close
 func (c *singleConn) close() error {
-	log.Debug("%s closing Conn with %s", c.local, c.remote)
+	log.Debugf("%s closing Conn with %s", c.local, c.remote)
 
 	// close underlying connection
 	err := c.maconn.Close()
diff --git a/net/swarm/swarm_test.go b/net/swarm/swarm_test.go
index b4a9b02780a17e279de02bb360f935810f76f0c9..9fc9ab1f99cfbaa6a8bf3d8e26b5abb21c59fab8 100644
--- a/net/swarm/swarm_test.go
+++ b/net/swarm/swarm_test.go
@@ -25,7 +25,7 @@ func pong(ctx context.Context, swarm *Swarm) {
 			if bytes.Equal(m1.Data(), []byte("ping")) {
 				m2 := msg.New(m1.Peer(), []byte("pong"))
 				i++
-				log.Debug("%s pong %s (%d)", swarm.local, m1.Peer(), i)
+				log.Debugf("%s pong %s (%d)", swarm.local, m1.Peer(), i)
 				swarm.Outgoing <- m2
 			}
 		}
@@ -130,14 +130,14 @@ func SubtestSwarm(t *testing.T, addrs []string, MsgNum int) {
 
 		for k := 0; k < MsgNum; k++ {
 			for _, p := range *peers {
-				log.Debug("%s ping %s (%d)", s1.local, p, k)
+				log.Debugf("%s ping %s (%d)", s1.local, p, k)
 				s1.Outgoing <- msg.New(p, []byte("ping"))
 			}
 		}
 
 		got := map[u.Key]int{}
 		for k := 0; k < (MsgNum * len(*peers)); k++ {
-			log.Debug("%s waiting for pong (%d)", s1.local, k)
+			log.Debugf("%s waiting for pong (%d)", s1.local, k)
 			msg := <-s1.Incoming
 			if string(msg.Data()) != "pong" {
 				t.Error("unexpected conn output", msg.Data)
diff --git a/path/path.go b/path/path.go
index cb1061d1185e20bf1263019774b26f000534e8a6..8d3070a0eeeb46ba3fa16113e2d1a2022aafcafe 100644
--- a/path/path.go
+++ b/path/path.go
@@ -22,7 +22,7 @@ type Resolver struct {
 // path component as a hash (key) of the first node, then resolves
 // all other components walking the links, with ResolveLinks.
 func (s *Resolver) ResolvePath(fpath string) (*merkledag.Node, error) {
-	log.Debug("Resolve: '%s'", fpath)
+	log.Debugf("Resolve: '%s'", fpath)
 	fpath = path.Clean(fpath)
 
 	parts := strings.Split(fpath, "/")
diff --git a/pin/indirect.go b/pin/indirect.go
index 2eb303de2ba6e1750729fc426c8ae72683d60265..b15b720ee751094e0c62424a86a54737aeaf32c5 100644
--- a/pin/indirect.go
+++ b/pin/indirect.go
@@ -32,7 +32,7 @@ func loadIndirPin(d ds.Datastore, k ds.Key) (*indirectPin, error) {
 		keys = append(keys, k)
 		refcnt[k] = v
 	}
-	log.Debug("indirPin keys: %#v", keys)
+	log.Debugf("indirPin keys: %#v", keys)
 
 	return &indirectPin{blockset: set.SimpleSetFromKeys(keys), refCounts: refcnt}, nil
 }
diff --git a/routing/dht/ext_test.go b/routing/dht/ext_test.go
index 77684db285f50df9621f094115e0ad2ad178f730..19275338da2f86585be061d892087c1867d78040 100644
--- a/routing/dht/ext_test.go
+++ b/routing/dht/ext_test.go
@@ -245,7 +245,7 @@ func TestNotFound(t *testing.T) {
 
 	ctx, _ = context.WithTimeout(ctx, time.Second*5)
 	v, err := d.GetValue(ctx, u.Key("hello"))
-	log.Debug("get value got %v", v)
+	log.Debugf("get value got %v", v)
 	if err != nil {
 		switch err {
 		case routing.ErrNotFound:
diff --git a/routing/dht/query.go b/routing/dht/query.go
index 48974b8eb0aa12d6486174b33f419292bfe5bd1d..cd9fae98c0024ce99302431d7989f61f26a9213f 100644
--- a/routing/dht/query.go
+++ b/routing/dht/query.go
@@ -107,7 +107,7 @@ func newQueryRunner(ctx context.Context, q *dhtQuery) *dhtQueryRunner {
 }
 
 func (r *dhtQueryRunner) Run(peers []peer.Peer) (*dhtQueryResult, error) {
-	log.Debug("Run query with %d peers.", len(peers))
+	log.Debugf("Run query with %d peers.", len(peers))
 	if len(peers) == 0 {
 		log.Warning("Running query with no peers!")
 		return nil, nil
@@ -176,7 +176,7 @@ func (r *dhtQueryRunner) addPeerToQuery(next peer.Peer, benchmark peer.Peer) {
 	r.peersSeen[next.Key()] = next
 	r.Unlock()
 
-	log.Debug("adding peer to query: %v\n", next)
+	log.Debugf("adding peer to query: %v\n", next)
 
 	// do this after unlocking to prevent possible deadlocks.
 	r.peersRemaining.Increment(1)
@@ -200,14 +200,14 @@ func (r *dhtQueryRunner) spawnWorkers() {
 			if !more {
 				return // channel closed.
 			}
-			log.Debug("spawning worker for: %v\n", p)
+			log.Debugf("spawning worker for: %v\n", p)
 			go r.queryPeer(p)
 		}
 	}
 }
 
 func (r *dhtQueryRunner) queryPeer(p peer.Peer) {
-	log.Debug("spawned worker for: %v\n", p)
+	log.Debugf("spawned worker for: %v\n", p)
 
 	// make sure we rate limit concurrency.
 	select {
@@ -218,12 +218,12 @@ func (r *dhtQueryRunner) queryPeer(p peer.Peer) {
 	}
 
 	// ok let's do this!
-	log.Debug("running worker for: %v", p)
+	log.Debugf("running worker for: %v", p)
 
 	// make sure we do this when we exit
 	defer func() {
 		// signal we're done proccessing peer p
-		log.Debug("completing worker for: %v", p)
+		log.Debugf("completing worker for: %v", p)
 		r.peersRemaining.Decrement(1)
 		r.rateLimit <- struct{}{}
 	}()
@@ -232,7 +232,7 @@ func (r *dhtQueryRunner) queryPeer(p peer.Peer) {
 	// (Incidentally, this will add it to the peerstore too)
 	err := r.query.dialer.DialPeer(p)
 	if err != nil {
-		log.Debug("ERROR worker for: %v -- err connecting: %v", p, err)
+		log.Debugf("ERROR worker for: %v -- err connecting: %v", p, err)
 		r.Lock()
 		r.errs = append(r.errs, err)
 		r.Unlock()
@@ -243,20 +243,20 @@ func (r *dhtQueryRunner) queryPeer(p peer.Peer) {
 	res, err := r.query.qfunc(r.ctx, p)
 
 	if err != nil {
-		log.Debug("ERROR worker for: %v %v", p, err)
+		log.Debugf("ERROR worker for: %v %v", p, err)
 		r.Lock()
 		r.errs = append(r.errs, err)
 		r.Unlock()
 
 	} else if res.success {
-		log.Debug("SUCCESS worker for: %v", p, res)
+		log.Debugf("SUCCESS worker for: %v", p, res)
 		r.Lock()
 		r.result = res
 		r.Unlock()
 		r.cancel() // signal to everyone that we're done.
 
 	} else if res.closerPeers != nil {
-		log.Debug("PEERS CLOSER -- worker for: %v\n", p)
+		log.Debugf("PEERS CLOSER -- worker for: %v\n", p)
 		for _, next := range res.closerPeers {
 			r.addPeerToQuery(next, p)
 		}
diff --git a/routing/dht/routing.go b/routing/dht/routing.go
index 44edd99a7a0b686795d92c5606ad2dea0b54219b..da400fee2889c40d12cd2eb2afab7a4bd63b2c20 100644
--- a/routing/dht/routing.go
+++ b/routing/dht/routing.go
@@ -247,7 +247,7 @@ func (dht *IpfsDHT) FindPeer(ctx context.Context, id peer.ID) (peer.Peer, error)
 		return nil, err
 	}
 
-	log.Debug("FindPeer %v %v", id, result.success)
+	log.Debugf("FindPeer %v %v", id, result.success)
 	if result.peer == nil {
 		return nil, routing.ErrNotFound
 	}