From ac023013d45e67ec3a0d728ca14ec265c9cf1087 Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 4 Sep 2015 09:41:40 -0400 Subject: [PATCH] change logging --- SocketIOClientSwift/SocketEngine.swift | 51 ++++++++++---------- SocketIOClientSwift/SocketIOClient.swift | 60 ++++++++++++------------ SocketIOClientSwift/SocketLogger.swift | 18 +++---- SocketIOClientSwift/SocketParser.swift | 6 +-- 4 files changed, 68 insertions(+), 67 deletions(-) diff --git a/SocketIOClientSwift/SocketEngine.swift b/SocketIOClientSwift/SocketEngine.swift index 564c560..bf0c70d 100644 --- a/SocketIOClientSwift/SocketEngine.swift +++ b/SocketIOClientSwift/SocketEngine.swift @@ -29,11 +29,12 @@ public final class SocketEngine: NSObject, WebSocketDelegate { private typealias ProbeWaitQueue = [Probe] private let allowedCharacterSet = NSCharacterSet(charactersInString: "!*'();:@&=+$,/?%#[]\" {}").invertedSet - private let workQueue = NSOperationQueue() private let emitQueue = dispatch_queue_create("engineEmitQueue", DISPATCH_QUEUE_SERIAL) - private let parseQueue = dispatch_queue_create("engineParseQueue", DISPATCH_QUEUE_SERIAL) private let handleQueue = dispatch_queue_create("engineHandleQueue", DISPATCH_QUEUE_SERIAL) + private let logType = "SocketEngine" + private let parseQueue = dispatch_queue_create("engineParseQueue", DISPATCH_QUEUE_SERIAL) private let session: NSURLSession! + private let workQueue = NSOperationQueue() private var closed = false private var extraHeaders: [String: String]? @@ -96,11 +97,11 @@ public final class SocketEngine: NSObject, WebSocketDelegate { } deinit { - Logger.log("Engine is being deinit", client: self, altType: nil) + Logger.log("Engine is being deinit", type: logType) } public func close(fast fast: Bool) { - Logger.log("Engine is being closed. Fast: %@", client: self, altType: nil, args: fast) + Logger.log("Engine is being closed. Fast: %@", type: logType, args: fast) pingTimer?.invalidate() closed = true @@ -198,7 +199,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { private func doFastUpgrade() { if waitingForPoll { Logger.error("Outstanding poll when switched to WebSockets," + - "we'll probably disconnect soon. You should report this.", client: self, altType: nil) + "we'll probably disconnect soon. You should report this.", type: logType) } sendWebSocketMessage("", withType: PacketType.Upgrade, datas: nil) @@ -238,7 +239,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { req.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData - Logger.log("Doing polling request", client: self, altType: nil) + Logger.log("Doing polling request", type: logType) session.dataTaskWithRequest(req) {[weak self] data, res, err in if let this = self { @@ -246,12 +247,12 @@ public final class SocketEngine: NSObject, WebSocketDelegate { if this.polling { this.handlePollingFailed(err?.localizedDescription ?? "Error") } else { - Logger.error(err?.localizedDescription ?? "Error", client: this, altType: nil) + Logger.error(err?.localizedDescription ?? "Error", type: this.logType) } return } - Logger.log("Got polling response", client: this, altType: nil) + Logger.log("Got polling response", type: this.logType) if let str = NSString(data: data!, encoding: NSUTF8StringEncoding) as? String { dispatch_async(this.parseQueue) {[weak this] in @@ -270,7 +271,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { } private func flushProbeWait() { - Logger.log("Flushing probe wait", client: self, altType: nil) + Logger.log("Flushing probe wait", type: logType) dispatch_async(emitQueue) {[weak self] in if let this = self { @@ -323,7 +324,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { waitingForPost = true - Logger.log("POSTing: %@", client: self, altType: nil, args: postStr) + Logger.log("POSTing: %@", type: logType, args: postStr) session.dataTaskWithRequest(req) {[weak self] data, res, err in if let this = self { @@ -410,7 +411,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { } } } catch { - Logger.error("Error parsing open packet", client: self, altType: nil) + Logger.error("Error parsing open packet", type: logType) return } @@ -446,14 +447,14 @@ public final class SocketEngine: NSObject, WebSocketDelegate { public func open(opts: [String: AnyObject]? = nil) { if connected { - Logger.error("Tried to open while connected", client: self, altType: nil) + Logger.error("Tried to open while connected", type: logType) client?.didError("Tried to open while connected") return } - Logger.log("Starting engine", client: self, altType: nil) - Logger.log("Handshaking", client: self, altType: nil) + Logger.log("Starting engine", type: logType) + Logger.log("Handshaking", type: logType) closed = false @@ -510,7 +511,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { length += chr } else { if length == "" || testLength(length, n: &n) { - Logger.error("Parsing error: %@", client: self, altType: nil, args: str) + Logger.error("Parsing error: %@", type: logType, args: str) handlePollingFailed("Error parsing XHR message") return } @@ -518,7 +519,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { msg = String(strArray[i+1...i+n]) if let lengthInt = Int(length) where lengthInt != msg.characters.count { - Logger.error("Parsing error: %@", client: self, altType: nil, args: str) + Logger.error("Parsing error: %@", type: logType, args: str) return } @@ -540,7 +541,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { } private func parseEngineMessage(var message: String, fromPolling: Bool) { - Logger.log("Got message: %@", client: self, altType: nil, args: message) + Logger.log("Got message: %@", type: logType, args: message) if fromPolling { fixDoubleUTF8(&message) @@ -565,7 +566,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { case PacketType.Close: handleClose() default: - Logger.log("Got unknown packet type", client: self, altType: nil) + Logger.log("Got unknown packet type", type: logType) } } @@ -600,7 +601,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { /// Only call on emitQueue private func sendPollMessage(var msg: String, withType type: PacketType, datas:[NSData]? = nil) { - Logger.log("Sending poll: %@ as type: %@", client: self, altType: nil, args: msg, type.rawValue) + Logger.log("Sending poll: %@ as type: %@", type: logType, args: msg, type.rawValue) doubleEncodeUTF8(&msg) let strMsg = "\(type.rawValue)\(msg)" @@ -624,7 +625,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { /// Only call on emitQueue private func sendWebSocketMessage(str: String, withType type: PacketType, datas:[NSData]? = nil) { - Logger.log("Sending ws: %@ as type: %@", client: self, altType: nil, args: str, type.rawValue) + Logger.log("Sending ws: %@ as type: %@", type: logType, args: str, type.rawValue) ws?.writeString("\(type.rawValue)\(str)") @@ -659,7 +660,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { private func upgradeTransport() { if websocketConnected { - Logger.log("Upgrading transport to WebSockets", client: self, altType: nil) + Logger.log("Upgrading transport to WebSockets", type: logType) fastUpgrade = true sendPollMessage("", withType: PacketType.Noop) @@ -674,12 +675,12 @@ public final class SocketEngine: NSObject, WebSocketDelegate { dispatch_async(emitQueue) {[weak self] in if let this = self where this.connected { if this.websocket { - Logger.log("Writing ws: %@ has data: %@", client: this, altType: nil, - args: msg, data == nil ? false : true) + Logger.log("Writing ws: %@ has data: %@", type: this.logType, args: msg, + data == nil ? false : true) this.sendWebSocketMessage(msg, withType: type, datas: data) } else { - Logger.log("Writing poll: %@ has data: %@", client: this, altType: nil, - args: msg, data == nil ? false : true) + Logger.log("Writing poll: %@ has data: %@", type: this.logType, args: msg, + data == nil ? false : true) this.sendPollMessage(msg, withType: type, datas: data) } } diff --git a/SocketIOClientSwift/SocketIOClient.swift b/SocketIOClientSwift/SocketIOClient.swift index faa122e..0a1d8bf 100644 --- a/SocketIOClientSwift/SocketIOClient.swift +++ b/SocketIOClientSwift/SocketIOClient.swift @@ -25,17 +25,6 @@ import Foundation public final class SocketIOClient: NSObject, SocketEngineClient { - private var anyHandler: ((SocketAnyEvent) -> Void)? - private var currentReconnectAttempt = 0 - private var handlers = ContiguousArray() - private var connectParams: [String: AnyObject]? - private var reconnectTimer: NSTimer? - - let reconnectAttempts: Int! - var ackHandlers = SocketAckManager() - var currentAck = -1 - var waitingData = [SocketPacket]() - public let emitQueue = dispatch_queue_create("emitQueue", DISPATCH_QUEUE_SERIAL) public let handleQueue: dispatch_queue_t! public let socketURL: String @@ -52,6 +41,19 @@ public final class SocketIOClient: NSObject, SocketEngineClient { return engine?.sid } + private let logType = "SocketIOClient" + + private var anyHandler: ((SocketAnyEvent) -> Void)? + private var currentReconnectAttempt = 0 + private var handlers = ContiguousArray() + private var connectParams: [String: AnyObject]? + private var reconnectTimer: NSTimer? + + let reconnectAttempts: Int! + var ackHandlers = SocketAckManager() + var currentAck = -1 + var waitingData = [SocketPacket]() + /** Create a new SocketIOClient. opts can be omitted */ @@ -106,12 +108,12 @@ public final class SocketIOClient: NSObject, SocketEngineClient { } deinit { - Logger.log("Client is being deinit", client: self, altType: nil) + Logger.log("Client is being deinit", type: logType) engine?.close(fast: true) } private func addEngine() { - Logger.log("Adding engine", client: self, altType: nil) + Logger.log("Adding engine", type: logType) engine = SocketEngine(client: self, opts: opts) } @@ -127,7 +129,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { Pass true to fast if you're closing from a background task */ public func close(fast fast: Bool) { - Logger.log("Closing socket", client: self, altType: nil) + Logger.log("Closing socket", type: logType) reconnects = false status = SocketIOClientStatus.Closed @@ -151,7 +153,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { } if status == SocketIOClientStatus.Closed { Logger.log("Warning! This socket was previously closed. This might be dangerous!", - client: self, altType: nil) + type: logType) } status = SocketIOClientStatus.Connecting @@ -195,7 +197,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { } func didConnect() { - Logger.log("Socket connected", client: self, altType: nil) + Logger.log("Socket connected", type: logType) status = SocketIOClientStatus.Connected currentReconnectAttempt = 0 clearReconnectTimer() @@ -210,7 +212,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { return } - Logger.log("Disconnected: %@", client: self, altType: nil, args: reason) + Logger.log("Disconnected: %@", type: logType, args: reason) status = SocketIOClientStatus.Closed @@ -223,7 +225,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { /// error public func didError(reason: AnyObject) { - Logger.error("%@", client: self, altType: nil, args: reason) + Logger.error("%@", type: logType, args: reason) handleEvent("error", data: reason as? [AnyObject] ?? [reason], isInternalMessage: true) @@ -279,7 +281,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { let packet = SocketPacket.packetFromEmit(data, id: ack ?? -1, nsp: nsp, ack: false) let str = packet.packetString - Logger.log("Emitting: %@", client: self, altType: nil, args: str) + Logger.log("Emitting: %@", type: logType, args: str) if packet.type == SocketPacket.PacketType.BinaryEvent { engine?.send(str, withData: packet.binary) @@ -295,7 +297,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { let packet = SocketPacket.packetFromEmit(items, id: ack ?? -1, nsp: this.nsp, ack: true) let str = packet.packetString - Logger.log("Emitting Ack: %@", client: this, altType: nil, args: str) + Logger.log("Emitting Ack: %@", type: this.logType, args: str) if packet.type == SocketPacket.PacketType.BinaryAck { this.engine?.send(str, withData: packet.binary) @@ -321,8 +323,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { // Called when the socket gets an ack for something it sent func handleAck(ack: Int, data: AnyObject?) { - Logger.log("Handling ack: %@ with data: %@", client: self, - altType: nil, args: ack, data ?? "") + Logger.log("Handling ack: %@ with data: %@", type: logType, args: ack, data ?? "") ackHandlers.executeAck(ack, items: (data as? [AnyObject]?) ?? (data != nil ? [data!] : nil)) @@ -338,8 +339,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { } // println("Should do event: \(event) with data: \(data)") - Logger.log("Handling event: %@ with data: %@", client: self, - altType: nil, args: event, data ?? "") + Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "") if anyHandler != nil { dispatch_async(handleQueue) {[weak self] in @@ -374,7 +374,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { Joins nsp if it is not / */ public func joinNamespace() { - Logger.log("Joining namespace", client: self, altType: nil) + Logger.log("Joining namespace", type: logType) if nsp != "/" { engine?.send("0\(nsp)", withData: nil) @@ -393,7 +393,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { Removes handler(s) */ public func off(event: String) { - Logger.log("Removing handler for event: %@", client: self, altType: nil, args: event) + Logger.log("Removing handler for event: %@", type: logType, args: event) handlers = ContiguousArray(handlers.filter {!($0.event == event)}) } @@ -402,7 +402,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { Adds a handler for an event. */ public func on(event: String, callback: NormalCallback) { - Logger.log("Adding handler for event: %@", client: self, altType: nil, args: event) + Logger.log("Adding handler for event: %@", type: logType, args: event) let handler = SocketEventHandler(event: event, callback: callback) handlers.append(handler) @@ -412,7 +412,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { Adds a handler for an event. */ public func onObjectiveC(event: String, callback: NormalCallbackObjectiveC) { - Logger.log("Adding handler for event: %@", client: self, altType: nil, args: event) + Logger.log("Adding handler for event: %@", type: logType, args: event) let handler = SocketEventHandler(event: event, callback: callback) handlers.append(handler) @@ -466,7 +466,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { private func tryReconnect() { if reconnectTimer == nil { - Logger.log("Starting reconnect", client: self, altType: nil) + Logger.log("Starting reconnect", type: logType) status = SocketIOClientStatus.Reconnecting @@ -494,7 +494,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { return } - Logger.log("Trying to reconnect", client: self, altType: nil) + Logger.log("Trying to reconnect", type: logType) handleEvent("reconnectAttempt", data: [reconnectAttempts - currentReconnectAttempt], isInternalMessage: true) diff --git a/SocketIOClientSwift/SocketLogger.swift b/SocketIOClientSwift/SocketLogger.swift index e1503a8..b31a894 100644 --- a/SocketIOClientSwift/SocketLogger.swift +++ b/SocketIOClientSwift/SocketLogger.swift @@ -31,29 +31,29 @@ public protocol SocketLogger { var log: Bool {get set} /// Normal log messages - func log(message: String, client: AnyObject, altType: String?, args: AnyObject...) + func log(message: String, type: String, args: AnyObject...) /// Error Messages - func error(message: String, client: AnyObject, altType: String?, args: AnyObject...) + func error(message: String, type: String, args: AnyObject...) } public extension SocketLogger { - func log(message: String, client: AnyObject, altType: String?, args: AnyObject...) { - abstractLog("Log", message: message, client: client, altType: altType, args: args) + func log(message: String, type: String, args: AnyObject...) { + abstractLog("Log", message: message, type: type, args: args) } - func error(message: String, client: AnyObject, altType: String?, args: AnyObject...) { - abstractLog("ERROR", message: message, client: client, altType: altType, args: args) + func error(message: String, type: String, args: AnyObject...) { + abstractLog("ERROR", message: message, type: type, args: args) } - private func abstractLog(type:String, message: String, client: AnyObject, altType: String?, args:Array) { + private func abstractLog(logType: String, message: String, type: String, args: [AnyObject]) { guard log else { return } let newArgs = args.map {arg -> CVarArgType in String(arg)} let replaced = String(format: message, arguments: newArgs) - let sourceString = NSStringFromClass(object_getClass(client)) - NSLog("%@ %@: %@",type, altType ?? sourceString, replaced) + + NSLog("%@ %@: %@", logType, type, replaced) } } diff --git a/SocketIOClientSwift/SocketParser.swift b/SocketIOClientSwift/SocketParser.swift index 8f43d2d..cbaff70 100644 --- a/SocketIOClientSwift/SocketParser.swift +++ b/SocketIOClientSwift/SocketParser.swift @@ -177,7 +177,7 @@ class SocketParser { return } - Logger.log("Parsing %@", client: socket, altType: "SocketParser", args: stringMessage) + Logger.log("Parsing %@", type: "SocketParser", args: stringMessage) let p: SocketPacket @@ -188,7 +188,7 @@ class SocketParser { return } - Logger.log("Decoded packet as: %@", client: socket, altType: "SocketParser", args: p.description) + Logger.log("Decoded packet as: %@", type: "SocketParser", args: p.description) switch p.type { case SocketPacket.PacketType.Event: @@ -210,7 +210,7 @@ class SocketParser { static func parseBinaryData(data: NSData, socket: SocketIOClient) { if socket.waitingData.count == 0 { - Logger.error("Got data when not remaking packet", client: socket, altType: "SocketParser") + Logger.error("Got data when not remaking packet", type: "SocketParser") return }