                 log.debug("Both local and remote changes to mirror item \(guid). Resolving conflict.")
                 return try self.threeWayMerge(guid, localNode: loc, remoteNode: rem, mirrorNode: mirrorNode)
             }
-            log.debug("Local-only change to mirror item \(guid).")
+            log.verbose("Local-only change to mirror item \(guid).")
             return try takeLocalAndMergeChildren(loc, mirror: mirrorNode)
         }
 
         if let rem = remoteNode where !rem.isUnknown {
-            log.debug("Remote-only change to mirror item \(guid).")
+            log.verbose("Remote-only change to mirror item \(guid).")
             return try takeRemoteAndMergeChildren(rem, mirror: mirrorNode)
         }
 
-        log.debug("Record \(guid) didn't change from mirror.")
+        log.verbose("Record \(guid) didn't change from mirror.")
         return try takeMirrorNode(mirrorNode)
     }
 

            }

            // Node only exists remotely. Take it.
            log.debug("Node \(guid) only exists remotely.")
            return try takeRemoteAndMergeChildren(rem)
        }


        log.debug("Processing \(self.localAllGUIDs.count) local changes and \(self.remoteAllGUIDs.count) remote changes.")
        log.debug("\(self.local.subtrees.count) local subtrees and \(self.remote.subtrees.count) remote subtrees.")
        log.debug("Local is adding \(self.localAdditions.count) records, and remote is adding \(self.remoteAdditions.count).")
        log.debug("Local and remote have \(self.allDeletions.count) deletions.")

        if !conflictingGUIDs.isEmpty {
            log.warning("Expecting conflicts between local and remote: \(conflictingGUIDs.joinWithSeparator(", ")).")
