     */
     public func operationDidFinish(operation: Operation, errors: [ErrorType]) {
         let detail = errors.count > 0 ? "error(s): \(errors)" : "no errors"
-        log("\(operationName(operation)): finished with \(detail).")
-    }
-
-    private func operationName(operation: Operation) -> String {
-        if let name = operation.name {
-            return "\(name)"
-        }
-        return "\(operation)"
+        log("\(operation.operationName): finished with \(detail).")
     }
 
     private func log(message: String) {

     - parameter operation: the `Operation` which has started.
     */
    public func operationDidCancel(operation: Operation) {
        log("\(operationName(operation)): did cancel.")
    }

    /**

    - parameter newOperation: the `Operation` which has been produced.
    */
    public func operation(operation: Operation, didProduceOperation newOperation: NSOperation) {
        let detail = newOperation.operationName

        if let newOperation = newOperation as? Operation {
            newOperation.addObserver(LoggingObserver(queue: queue, logger: logger))
        }

        log("\(operation.operationName): did produce operation: \(detail).")
    }

    /**
