diff --git a/log.go b/log.go
index b98197b7f..f249927a1 100644
--- a/log.go
+++ b/log.go
@@ -7,8 +7,6 @@ package main
 import (
 	"fmt"
 	"os"
-	"strings"
-	"time"
 
 	"github.com/btcsuite/btcd/addrmgr"
 	"github.com/btcsuite/btcd/blockchain"
@@ -16,7 +14,6 @@ import (
 	"github.com/btcsuite/btcd/database"
 	"github.com/btcsuite/btcd/peer"
 	"github.com/btcsuite/btcd/txscript"
-	"github.com/btcsuite/btcd/wire"
 	"github.com/btcsuite/btclog"
 	"github.com/btcsuite/seelog"
 )
@@ -210,153 +207,3 @@ func directionString(inbound bool) string {
 	}
 	return "outbound"
 }
-
-// formatLockTime returns a transaction lock time as a human-readable string.
-func formatLockTime(lockTime uint32) string {
-	// The lock time field of a transaction is either a block height at
-	// which the transaction is finalized or a timestamp depending on if the
-	// value is before the txscript.LockTimeThreshold.  When it is under the
-	// threshold it is a block height.
-	if lockTime < txscript.LockTimeThreshold {
-		return fmt.Sprintf("height %d", lockTime)
-	}
-
-	return time.Unix(int64(lockTime), 0).String()
-}
-
-// invSummary returns an inventory message as a human-readable string.
-func invSummary(invList []*wire.InvVect) string {
-	// No inventory.
-	invLen := len(invList)
-	if invLen == 0 {
-		return "empty"
-	}
-
-	// One inventory item.
-	if invLen == 1 {
-		iv := invList[0]
-		switch iv.Type {
-		case wire.InvTypeError:
-			return fmt.Sprintf("error %s", iv.Hash)
-		case wire.InvTypeBlock:
-			return fmt.Sprintf("block %s", iv.Hash)
-		case wire.InvTypeTx:
-			return fmt.Sprintf("tx %s", iv.Hash)
-		}
-
-		return fmt.Sprintf("unknown (%d) %s", uint32(iv.Type), iv.Hash)
-	}
-
-	// More than one inv item.
-	return fmt.Sprintf("size %d", invLen)
-}
-
-// locatorSummary returns a block locator as a human-readable string.
-func locatorSummary(locator []*wire.ShaHash, stopHash *wire.ShaHash) string {
-	if len(locator) > 0 {
-		return fmt.Sprintf("locator %s, stop %s", locator[0], stopHash)
-	}
-
-	return fmt.Sprintf("no locator, stop %s", stopHash)
-
-}
-
-// sanitizeString strips any characters which are even remotely dangerous, such
-// as html control characters, from the passed string.  It also limits it to
-// the passed maximum size, which can be 0 for unlimited.  When the string is
-// limited, it will also add "..." to the string to indicate it was truncated.
-func sanitizeString(str string, maxLength uint) string {
-	const safeChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY" +
-		"Z01234567890 .,;_/:?@"
-
-	// Strip any characters not in the safeChars string removed.
-	str = strings.Map(func(r rune) rune {
-		if strings.IndexRune(safeChars, r) >= 0 {
-			return r
-		}
-		return -1
-	}, str)
-
-	// Limit the string to the max allowed length.
-	if maxLength > 0 && uint(len(str)) > maxLength {
-		str = str[:maxLength]
-		str = str + "..."
-	}
-	return str
-}
-
-// messageSummary returns a human-readable string which summarizes a message.
-// Not all messages have or need a summary.  This is used for debug logging.
-func messageSummary(msg wire.Message) string {
-	switch msg := msg.(type) {
-	case *wire.MsgVersion:
-		return fmt.Sprintf("agent %s, pver %d, block %d",
-			msg.UserAgent, msg.ProtocolVersion, msg.LastBlock)
-
-	case *wire.MsgVerAck:
-		// No summary.
-
-	case *wire.MsgGetAddr:
-		// No summary.
-
-	case *wire.MsgAddr:
-		return fmt.Sprintf("%d addr", len(msg.AddrList))
-
-	case *wire.MsgPing:
-		// No summary - perhaps add nonce.
-
-	case *wire.MsgPong:
-		// No summary - perhaps add nonce.
-
-	case *wire.MsgAlert:
-		// No summary.
-
-	case *wire.MsgMemPool:
-		// No summary.
-
-	case *wire.MsgTx:
-		return fmt.Sprintf("hash %s, %d inputs, %d outputs, lock %s",
-			msg.TxSha(), len(msg.TxIn), len(msg.TxOut),
-			formatLockTime(msg.LockTime))
-
-	case *wire.MsgBlock:
-		header := &msg.Header
-		return fmt.Sprintf("hash %s, ver %d, %d tx, %s", msg.BlockSha(),
-			header.Version, len(msg.Transactions), header.Timestamp)
-
-	case *wire.MsgInv:
-		return invSummary(msg.InvList)
-
-	case *wire.MsgNotFound:
-		return invSummary(msg.InvList)
-
-	case *wire.MsgGetData:
-		return invSummary(msg.InvList)
-
-	case *wire.MsgGetBlocks:
-		return locatorSummary(msg.BlockLocatorHashes, &msg.HashStop)
-
-	case *wire.MsgGetHeaders:
-		return locatorSummary(msg.BlockLocatorHashes, &msg.HashStop)
-
-	case *wire.MsgHeaders:
-		return fmt.Sprintf("num %d", len(msg.Headers))
-
-	case *wire.MsgReject:
-		// Ensure the variable length strings don't contain any
-		// characters which are even remotely dangerous such as HTML
-		// control characters, etc.  Also limit them to sane length for
-		// logging.
-		rejCommand := sanitizeString(msg.Cmd, wire.CommandSize)
-		rejReason := sanitizeString(msg.Reason, maxRejectReasonLen)
-		summary := fmt.Sprintf("cmd %v, code %v, reason %v", rejCommand,
-			msg.Code, rejReason)
-		if rejCommand == wire.CmdBlock || rejCommand == wire.CmdTx {
-			summary += fmt.Sprintf(", hash %v", msg.Hash)
-		}
-		return summary
-	}
-
-	// No summary for other messages.
-	return ""
-}