diff --git a/Source/SocketIO/Client/SocketIOClient.swift b/Source/SocketIO/Client/SocketIOClient.swift index 7ff919a..47d2e2b 100644 --- a/Source/SocketIO/Client/SocketIOClient.swift +++ b/Source/SocketIO/Client/SocketIOClient.swift @@ -153,7 +153,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So // MARK: Methods private func addEngine() { - DefaultSocketLogger.Logger.log("Adding engine", type: SocketIOClient.logType, args: "") + DefaultSocketLogger.Logger.log("Adding engine", type: SocketIOClient.logType) engine?.engineQueue.sync { self.engine?.client = nil @@ -218,7 +218,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So func didDisconnect(reason: String) { guard status != .disconnected else { return } - DefaultSocketLogger.Logger.log("Disconnected: %@", type: SocketIOClient.logType, args: reason) + DefaultSocketLogger.Logger.log("Disconnected: \(reason)", type: SocketIOClient.logType) reconnecting = false status = .disconnected @@ -327,7 +327,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So let packet = SocketPacket.packetFromEmit(data, id: ack ?? -1, nsp: nsp, ack: false) let str = packet.packetString - DefaultSocketLogger.Logger.log("Emitting: %@", type: SocketIOClient.logType, args: str) + DefaultSocketLogger.Logger.log("Emitting: \(str)", type: SocketIOClient.logType) engine?.send(str, withData: packet.binary) } @@ -339,7 +339,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So let packet = SocketPacket.packetFromEmit(items, id: ack, nsp: nsp, ack: true) let str = packet.packetString - DefaultSocketLogger.Logger.log("Emitting Ack: %@", type: SocketIOClient.logType, args: str) + DefaultSocketLogger.Logger.log("Emitting Ack: \(str)", type: SocketIOClient.logType) engine?.send(str, withData: packet.binary) } @@ -378,7 +378,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So } private func _engineDidError(reason: String) { - DefaultSocketLogger.Logger.error("%@", type: SocketIOClient.logType, args: reason) + DefaultSocketLogger.Logger.error("\(reason)", type: SocketIOClient.logType) handleClientEvent(.error, data: [reason]) } @@ -394,7 +394,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So func handleAck(_ ack: Int, data: [Any]) { guard status == .connected else { return } - DefaultSocketLogger.Logger.log("Handling ack: %@ with data: %@", type: SocketIOClient.logType, args: ack, data) + DefaultSocketLogger.Logger.log("Handling ack: \(ack) with data: \(data)", type: SocketIOClient.logType) ackHandlers.executeAck(ack, with: data, onQueue: handleQueue) } @@ -408,8 +408,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So open func handleEvent(_ event: String, data: [Any], isInternalMessage: Bool, withAck ack: Int = -1) { guard status == .connected || isInternalMessage else { return } - DefaultSocketLogger.Logger.log("Handling event: %@ with data: %@", type: SocketIOClient.logType, - args: event, data) + DefaultSocketLogger.Logger.log("Handling event: \(event) with data: \(data)", type: SocketIOClient.logType) anyHandler?(SocketAnyEvent(event: event, items: data)) @@ -459,7 +458,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So /// /// - parameter event: The event to remove handlers for. open func off(_ event: String) { - DefaultSocketLogger.Logger.log("Removing handler for event: %@", type: SocketIOClient.logType, args: event) + DefaultSocketLogger.Logger.log("Removing handler for event: \(event)", type: SocketIOClient.logType) handlers = handlers.filter({ $0.event != event }) } @@ -470,7 +469,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So /// /// - parameter id: The UUID of the handler you wish to remove. open func off(id: UUID) { - DefaultSocketLogger.Logger.log("Removing handler with id: %@", type: SocketIOClient.logType, args: id) + DefaultSocketLogger.Logger.log("Removing handler with id: \(id)", type: SocketIOClient.logType) handlers = handlers.filter({ $0.id != id }) } @@ -482,7 +481,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So /// - returns: A unique id for the handler that can be used to remove it. @discardableResult open func on(_ event: String, callback: @escaping NormalCallback) -> UUID { - DefaultSocketLogger.Logger.log("Adding handler for event: %@", type: SocketIOClient.logType, args: event) + DefaultSocketLogger.Logger.log("Adding handler for event: \(event)", type: SocketIOClient.logType) let handler = SocketEventHandler(event: event, id: UUID(), callback: callback) handlers.append(handler) @@ -505,7 +504,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So /// - returns: A unique id for the handler that can be used to remove it. @discardableResult open func on(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID { - DefaultSocketLogger.Logger.log("Adding handler for event: %@", type: SocketIOClient.logType, args: event) + DefaultSocketLogger.Logger.log("Adding handler for event: \(event)", type: SocketIOClient.logType) let handler = SocketEventHandler(event: event.rawValue, id: UUID(), callback: callback) handlers.append(handler) @@ -530,7 +529,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So /// - returns: A unique id for the handler that can be used to remove it. @discardableResult open func once(_ event: String, callback: @escaping NormalCallback) -> UUID { - DefaultSocketLogger.Logger.log("Adding once handler for event: %@", type: SocketIOClient.logType, args: event) + DefaultSocketLogger.Logger.log("Adding once handler for event: \(event)", type: SocketIOClient.logType) let id = UUID() @@ -556,7 +555,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So /// /// - parameter msg: The message that needs parsing. public func parseEngineMessage(_ msg: String) { - DefaultSocketLogger.Logger.log("Should parse message: %@", type: SocketIOClient.logType, args: msg) + DefaultSocketLogger.Logger.log("Should parse message: \(msg)", type: SocketIOClient.logType) handleQueue.async { self.parseSocketMessage(msg) } } diff --git a/Source/SocketIO/Client/SocketIOClientSpec.swift b/Source/SocketIO/Client/SocketIOClientSpec.swift index d707fbf..f53525f 100644 --- a/Source/SocketIO/Client/SocketIOClientSpec.swift +++ b/Source/SocketIO/Client/SocketIOClientSpec.swift @@ -40,7 +40,7 @@ protocol SocketIOClientSpec : class { extension SocketIOClientSpec { func didError(reason: String) { - DefaultSocketLogger.Logger.error("%@", type: "SocketIOClient", args: reason) + DefaultSocketLogger.Logger.error("\(reason)", type: "SocketIOClient") handleClientEvent(.error, data: [reason]) } diff --git a/Source/SocketIO/Engine/SocketEngine.swift b/Source/SocketIO/Engine/SocketEngine.swift index 2fe64a3..293ca83 100644 --- a/Source/SocketIO/Engine/SocketEngine.swift +++ b/Source/SocketIO/Engine/SocketEngine.swift @@ -255,7 +255,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll disconnect(reason: "reconnect") } - DefaultSocketLogger.Logger.log("Starting engine. Server: %@", type: SocketEngine.logType, args: url) + DefaultSocketLogger.Logger.log("Starting engine. Server: \(url)", type: SocketEngine.logType) DefaultSocketLogger.Logger.log("Handshaking", type: SocketEngine.logType) resetEngine() @@ -336,7 +336,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll /// Called when an error happens during execution. Causes a disconnection. public func didError(reason: String) { - DefaultSocketLogger.Logger.error("%@", type: SocketEngine.logType, args: reason) + DefaultSocketLogger.Logger.error("\(reason)", type: SocketEngine.logType) client?.engineDidError(reason: reason) disconnect(reason: reason) } @@ -490,7 +490,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll /// /// - parameter data: The data to parse. public func parseEngineData(_ data: Data) { - DefaultSocketLogger.Logger.log("Got binary data: %@", type: SocketEngine.logType, args: data) + DefaultSocketLogger.Logger.log("Got binary data: \(data)", type: SocketEngine.logType) client?.parseEngineBinaryData(data.subdata(in: 1.. ()) { guard polling && !closed && !invalidated && !fastUpgrade else { return } - DefaultSocketLogger.Logger.log("Doing polling %@ %@", type: "SocketEnginePolling", - args: req.httpMethod ?? "", req) + DefaultSocketLogger.Logger.log("Doing polling \(req.httpMethod ?? "") \(req)", type: "SocketEnginePolling") session?.dataTask(with: req, completionHandler: callback).resume() } @@ -187,7 +186,7 @@ extension SocketEnginePollable { func parsePollingMessage(_ str: String) { guard str.characters.count != 1 else { return } - DefaultSocketLogger.Logger.log("Got poll message: %@", type: "SocketEnginePolling", args: str) + DefaultSocketLogger.Logger.log("Got poll message: \(str)", type: "SocketEnginePolling") var reader = SocketStringReader(message: str) @@ -209,7 +208,7 @@ extension SocketEnginePollable { /// - parameter withType: The type of message to send. /// - parameter withData: The data associated with this message. public func sendPollMessage(_ message: String, withType type: SocketEnginePacketType, withData datas: [Data]) { - DefaultSocketLogger.Logger.log("Sending poll: %@ as type: %@", type: "SocketEnginePolling", args: message, type.rawValue) + DefaultSocketLogger.Logger.log("Sending poll: \(message) as type: \(type.rawValue)", type: "SocketEnginePolling") postWait.append(String(type.rawValue) + message) diff --git a/Source/SocketIO/Engine/SocketEngineWebsocket.swift b/Source/SocketIO/Engine/SocketEngineWebsocket.swift index 70b885c..e572d96 100644 --- a/Source/SocketIO/Engine/SocketEngineWebsocket.swift +++ b/Source/SocketIO/Engine/SocketEngineWebsocket.swift @@ -54,7 +54,7 @@ extension SocketEngineWebsocket { /// - parameter withType: The type of message to send. /// - parameter withData: The data associated with this message. public func sendWebSocketMessage(_ str: String, withType type: SocketEnginePacketType, withData datas: [Data]) { - DefaultSocketLogger.Logger.log("Sending ws: %@ as type: %@", type: "SocketEngine", args: str, type.rawValue) + DefaultSocketLogger.Logger.log("Sending ws: \(str) as type: \(type.rawValue)", type: "SocketEngineWebSocket") ws?.write(string: "\(type.rawValue)\(str)") diff --git a/Source/SocketIO/Parse/SocketParsable.swift b/Source/SocketIO/Parse/SocketParsable.swift index be82d2d..d99d0c1 100644 --- a/Source/SocketIO/Parse/SocketParsable.swift +++ b/Source/SocketIO/Parse/SocketParsable.swift @@ -63,7 +63,7 @@ extension SocketParsable where Self: SocketIOClientSpec { case .error: handleEvent("error", data: pack.data, isInternalMessage: true, withAck: pack.id) default: - DefaultSocketLogger.Logger.log("Got invalid packet: %@", type: "SocketParser", args: pack.description) + DefaultSocketLogger.Logger.log("Got invalid packet: \(pack.description)", type: "SocketParser") } } @@ -137,16 +137,16 @@ extension SocketParsable where Self: SocketIOClientSpec { func parseSocketMessage(_ message: String) { guard !message.isEmpty else { return } - DefaultSocketLogger.Logger.log("Parsing %@", type: "SocketParser", args: message) + DefaultSocketLogger.Logger.log("Parsing \(message)", type: "SocketParser") do { let packet = try parseString(message) - DefaultSocketLogger.Logger.log("Decoded packet as: %@", type: "SocketParser", args: packet.description) + DefaultSocketLogger.Logger.log("Decoded packet as: \(packet.description)", type: "SocketParser") handlePacket(packet) } catch { - DefaultSocketLogger.Logger.error("\(error): %@", type: "SocketParser", args: message) + DefaultSocketLogger.Logger.error("\(error): \(message)", type: "SocketParser") } } diff --git a/Source/SocketIO/Util/SocketLogger.swift b/Source/SocketIO/Util/SocketLogger.swift index 0b457ae..46e3f1b 100644 --- a/Source/SocketIO/Util/SocketLogger.swift +++ b/Source/SocketIO/Util/SocketLogger.swift @@ -38,34 +38,31 @@ public protocol SocketLogger : class { /// - parameter message: The message being logged. Can include `%@` that will be replaced with `args` /// - parameter type: The type of entity that called for logging. /// - parameter args: Any args that should be inserted into the message. May be left out. - func log(_ message: String, type: String, args: Any...) + func log(_ message: @autoclosure () -> String, type: String) /// Error Messages /// /// - parameter message: The message being logged. Can include `%@` that will be replaced with `args` /// - parameter type: The type of entity that called for logging. /// - parameter args: Any args that should be inserted into the message. May be left out. - func error(_ message: String, type: String, args: Any...) + func error(_ message: @autoclosure () -> String, type: String) } public extension SocketLogger { /// Default implementation. - func log(_ message: String, type: String, args: Any...) { - abstractLog("LOG", message: message, type: type, args: args) + func log(_ message: @autoclosure () -> String, type: String) { + abstractLog("LOG", message: message, type: type) } /// Default implementation. - func error(_ message: String, type: String, args: Any...) { - abstractLog("ERROR", message: message, type: type, args: args) + func error(_ message: @autoclosure () -> String, type: String) { + abstractLog("ERROR", message: message, type: type) } - private func abstractLog(_ logType: String, message: String, type: String, args: [Any]) { + private func abstractLog(_ logType: String, message: @autoclosure () -> String, type: String) { guard log else { return } - let newArgs = args.map({arg -> CVarArg in String(describing: arg)}) - let messageFormat = String(format: message, arguments: newArgs) - - NSLog("\(logType) \(type): %@", messageFormat) + NSLog("\(logType) \(type): %@", message()) } }