     - parameter newOperation: the `Operation` which has been produced.
     */
     public func operation(operation: Operation, didProduceOperation newOperation: NSOperation) {
-        var detail = "\(newOperation)"
+        let detail = newOperation.operationName
 
         if let newOperation = newOperation as? Operation {
             newOperation.addObserver(LoggingObserver(queue: queue, logger: logger))
-            detail = "\(operationName(newOperation))"
         }
 
-        log("\(operationName(operation)): did produce operation: \(detail).")
+        log("\(operation.operationName): did produce operation: \(detail).")
     }
 
     /**

    - parameter logger: a logging block. By detault the logger uses `println`
    however, for custom loggers provide a block which receives a `String`.
    */
    public init(queue: dispatch_queue_t = Queue.Initiated.serial("me.danthorpe.Operations.Logger"), logger: LoggerBlockType = { debugPrint($0) }) {
        self.queue = queue
        self.logger = logger
    }

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

    /**
