Skip to content

Commit e9296fd

Browse files
committed
Rework logging protocol to use autoclosure
1 parent dda4a31 commit e9296fd

7 files changed

+39
-44
lines changed

Source/SocketIO/Client/SocketIOClient.swift

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
153153
// MARK: Methods
154154

155155
private func addEngine() {
156-
DefaultSocketLogger.Logger.log("Adding engine", type: SocketIOClient.logType, args: "")
156+
DefaultSocketLogger.Logger.log("Adding engine", type: SocketIOClient.logType)
157157

158158
engine?.engineQueue.sync {
159159
self.engine?.client = nil
@@ -218,7 +218,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
218218
func didDisconnect(reason: String) {
219219
guard status != .disconnected else { return }
220220

221-
DefaultSocketLogger.Logger.log("Disconnected: %@", type: SocketIOClient.logType, args: reason)
221+
DefaultSocketLogger.Logger.log("Disconnected: \(reason)", type: SocketIOClient.logType)
222222

223223
reconnecting = false
224224
status = .disconnected
@@ -327,7 +327,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
327327
let packet = SocketPacket.packetFromEmit(data, id: ack ?? -1, nsp: nsp, ack: false)
328328
let str = packet.packetString
329329

330-
DefaultSocketLogger.Logger.log("Emitting: %@", type: SocketIOClient.logType, args: str)
330+
DefaultSocketLogger.Logger.log("Emitting: \(str)", type: SocketIOClient.logType)
331331

332332
engine?.send(str, withData: packet.binary)
333333
}
@@ -339,7 +339,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
339339
let packet = SocketPacket.packetFromEmit(items, id: ack, nsp: nsp, ack: true)
340340
let str = packet.packetString
341341

342-
DefaultSocketLogger.Logger.log("Emitting Ack: %@", type: SocketIOClient.logType, args: str)
342+
DefaultSocketLogger.Logger.log("Emitting Ack: \(str)", type: SocketIOClient.logType)
343343

344344
engine?.send(str, withData: packet.binary)
345345
}
@@ -378,7 +378,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
378378
}
379379

380380
private func _engineDidError(reason: String) {
381-
DefaultSocketLogger.Logger.error("%@", type: SocketIOClient.logType, args: reason)
381+
DefaultSocketLogger.Logger.error("\(reason)", type: SocketIOClient.logType)
382382

383383
handleClientEvent(.error, data: [reason])
384384
}
@@ -394,7 +394,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
394394
func handleAck(_ ack: Int, data: [Any]) {
395395
guard status == .connected else { return }
396396

397-
DefaultSocketLogger.Logger.log("Handling ack: %@ with data: %@", type: SocketIOClient.logType, args: ack, data)
397+
DefaultSocketLogger.Logger.log("Handling ack: \(ack) with data: \(data)", type: SocketIOClient.logType)
398398

399399
ackHandlers.executeAck(ack, with: data, onQueue: handleQueue)
400400
}
@@ -408,8 +408,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
408408
open func handleEvent(_ event: String, data: [Any], isInternalMessage: Bool, withAck ack: Int = -1) {
409409
guard status == .connected || isInternalMessage else { return }
410410

411-
DefaultSocketLogger.Logger.log("Handling event: %@ with data: %@", type: SocketIOClient.logType,
412-
args: event, data)
411+
DefaultSocketLogger.Logger.log("Handling event: \(event) with data: \(data)", type: SocketIOClient.logType)
413412

414413
anyHandler?(SocketAnyEvent(event: event, items: data))
415414

@@ -459,7 +458,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
459458
///
460459
/// - parameter event: The event to remove handlers for.
461460
open func off(_ event: String) {
462-
DefaultSocketLogger.Logger.log("Removing handler for event: %@", type: SocketIOClient.logType, args: event)
461+
DefaultSocketLogger.Logger.log("Removing handler for event: \(event)", type: SocketIOClient.logType)
463462

464463
handlers = handlers.filter({ $0.event != event })
465464
}
@@ -470,7 +469,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
470469
///
471470
/// - parameter id: The UUID of the handler you wish to remove.
472471
open func off(id: UUID) {
473-
DefaultSocketLogger.Logger.log("Removing handler with id: %@", type: SocketIOClient.logType, args: id)
472+
DefaultSocketLogger.Logger.log("Removing handler with id: \(id)", type: SocketIOClient.logType)
474473

475474
handlers = handlers.filter({ $0.id != id })
476475
}
@@ -482,7 +481,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
482481
/// - returns: A unique id for the handler that can be used to remove it.
483482
@discardableResult
484483
open func on(_ event: String, callback: @escaping NormalCallback) -> UUID {
485-
DefaultSocketLogger.Logger.log("Adding handler for event: %@", type: SocketIOClient.logType, args: event)
484+
DefaultSocketLogger.Logger.log("Adding handler for event: \(event)", type: SocketIOClient.logType)
486485

487486
let handler = SocketEventHandler(event: event, id: UUID(), callback: callback)
488487
handlers.append(handler)
@@ -505,7 +504,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
505504
/// - returns: A unique id for the handler that can be used to remove it.
506505
@discardableResult
507506
open func on(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID {
508-
DefaultSocketLogger.Logger.log("Adding handler for event: %@", type: SocketIOClient.logType, args: event)
507+
DefaultSocketLogger.Logger.log("Adding handler for event: \(event)", type: SocketIOClient.logType)
509508

510509
let handler = SocketEventHandler(event: event.rawValue, id: UUID(), callback: callback)
511510
handlers.append(handler)
@@ -530,7 +529,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
530529
/// - returns: A unique id for the handler that can be used to remove it.
531530
@discardableResult
532531
open func once(_ event: String, callback: @escaping NormalCallback) -> UUID {
533-
DefaultSocketLogger.Logger.log("Adding once handler for event: %@", type: SocketIOClient.logType, args: event)
532+
DefaultSocketLogger.Logger.log("Adding once handler for event: \(event)", type: SocketIOClient.logType)
534533

535534
let id = UUID()
536535

@@ -556,7 +555,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
556555
///
557556
/// - parameter msg: The message that needs parsing.
558557
public func parseEngineMessage(_ msg: String) {
559-
DefaultSocketLogger.Logger.log("Should parse message: %@", type: SocketIOClient.logType, args: msg)
558+
DefaultSocketLogger.Logger.log("Should parse message: \(msg)", type: SocketIOClient.logType)
560559

561560
handleQueue.async { self.parseSocketMessage(msg) }
562561
}

Source/SocketIO/Client/SocketIOClientSpec.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ protocol SocketIOClientSpec : class {
4040

4141
extension SocketIOClientSpec {
4242
func didError(reason: String) {
43-
DefaultSocketLogger.Logger.error("%@", type: "SocketIOClient", args: reason)
43+
DefaultSocketLogger.Logger.error("\(reason)", type: "SocketIOClient")
4444

4545
handleClientEvent(.error, data: [reason])
4646
}

Source/SocketIO/Engine/SocketEngine.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
255255
disconnect(reason: "reconnect")
256256
}
257257

258-
DefaultSocketLogger.Logger.log("Starting engine. Server: %@", type: SocketEngine.logType, args: url)
258+
DefaultSocketLogger.Logger.log("Starting engine. Server: \(url)", type: SocketEngine.logType)
259259
DefaultSocketLogger.Logger.log("Handshaking", type: SocketEngine.logType)
260260

261261
resetEngine()
@@ -336,7 +336,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
336336

337337
/// Called when an error happens during execution. Causes a disconnection.
338338
public func didError(reason: String) {
339-
DefaultSocketLogger.Logger.error("%@", type: SocketEngine.logType, args: reason)
339+
DefaultSocketLogger.Logger.error("\(reason)", type: SocketEngine.logType)
340340
client?.engineDidError(reason: reason)
341341
disconnect(reason: reason)
342342
}
@@ -490,7 +490,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
490490
///
491491
/// - parameter data: The data to parse.
492492
public func parseEngineData(_ data: Data) {
493-
DefaultSocketLogger.Logger.log("Got binary data: %@", type: SocketEngine.logType, args: data)
493+
DefaultSocketLogger.Logger.log("Got binary data: \(data)", type: SocketEngine.logType)
494494

495495
client?.parseEngineBinaryData(data.subdata(in: 1..<data.endIndex))
496496
}
@@ -501,7 +501,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
501501
/// - parameter fromPolling: Whether this message is from long-polling.
502502
/// If `true` we might have to fix utf8 encoding.
503503
public func parseEngineMessage(_ message: String) {
504-
DefaultSocketLogger.Logger.log("Got message: %@", type: SocketEngine.logType, args: message)
504+
DefaultSocketLogger.Logger.log("Got message: \(message)", type: SocketEngine.logType)
505505

506506
let reader = SocketStringReader(message: message)
507507

@@ -588,12 +588,12 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
588588
guard self.connected else { return }
589589

590590
if self.websocket {
591-
DefaultSocketLogger.Logger.log("Writing ws: %@ has data: %@",
592-
type: SocketEngine.logType, args: msg, data.count != 0)
591+
DefaultSocketLogger.Logger.log("Writing ws: \(msg) has data: \(data.count != 0)",
592+
type: SocketEngine.logType)
593593
self.sendWebSocketMessage(msg, withType: type, withData: data)
594594
} else if !self.probing {
595-
DefaultSocketLogger.Logger.log("Writing poll: %@ has data: %@",
596-
type: SocketEngine.logType, args: msg, data.count != 0)
595+
DefaultSocketLogger.Logger.log("Writing poll: \(msg) has data: \(data.count != 0)",
596+
type: SocketEngine.logType)
597597
self.sendPollMessage(msg, withType: type, withData: data)
598598
} else {
599599
self.probeWait.append((msg, type, data))

Source/SocketIO/Engine/SocketEnginePollable.swift

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ extension SocketEnginePollable {
8080
postStr += "\(packet.utf16.count):\(packet)"
8181
}
8282

83-
DefaultSocketLogger.Logger.log("Created POST string: %@", type: "SocketEnginePolling", args: postStr)
83+
DefaultSocketLogger.Logger.log("Created POST string: \(postStr)", type: "SocketEnginePolling")
8484

8585
var req = URLRequest(url: urlPollingWithSid)
8686
let postData = postStr.data(using: .utf8, allowLossyConversion: false)!
@@ -110,8 +110,7 @@ extension SocketEnginePollable {
110110
func doRequest(for req: URLRequest, callbackWith callback: @escaping (Data?, URLResponse?, Error?) -> ()) {
111111
guard polling && !closed && !invalidated && !fastUpgrade else { return }
112112

113-
DefaultSocketLogger.Logger.log("Doing polling %@ %@", type: "SocketEnginePolling",
114-
args: req.httpMethod ?? "", req)
113+
DefaultSocketLogger.Logger.log("Doing polling \(req.httpMethod ?? "") \(req)", type: "SocketEnginePolling")
115114

116115
session?.dataTask(with: req, completionHandler: callback).resume()
117116
}
@@ -187,7 +186,7 @@ extension SocketEnginePollable {
187186
func parsePollingMessage(_ str: String) {
188187
guard str.characters.count != 1 else { return }
189188

190-
DefaultSocketLogger.Logger.log("Got poll message: %@", type: "SocketEnginePolling", args: str)
189+
DefaultSocketLogger.Logger.log("Got poll message: \(str)", type: "SocketEnginePolling")
191190

192191
var reader = SocketStringReader(message: str)
193192

@@ -209,7 +208,7 @@ extension SocketEnginePollable {
209208
/// - parameter withType: The type of message to send.
210209
/// - parameter withData: The data associated with this message.
211210
public func sendPollMessage(_ message: String, withType type: SocketEnginePacketType, withData datas: [Data]) {
212-
DefaultSocketLogger.Logger.log("Sending poll: %@ as type: %@", type: "SocketEnginePolling", args: message, type.rawValue)
211+
DefaultSocketLogger.Logger.log("Sending poll: \(message) as type: \(type.rawValue)", type: "SocketEnginePolling")
213212

214213
postWait.append(String(type.rawValue) + message)
215214

Source/SocketIO/Engine/SocketEngineWebsocket.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ extension SocketEngineWebsocket {
5454
/// - parameter withType: The type of message to send.
5555
/// - parameter withData: The data associated with this message.
5656
public func sendWebSocketMessage(_ str: String, withType type: SocketEnginePacketType, withData datas: [Data]) {
57-
DefaultSocketLogger.Logger.log("Sending ws: %@ as type: %@", type: "SocketEngine", args: str, type.rawValue)
57+
DefaultSocketLogger.Logger.log("Sending ws: \(str) as type: \(type.rawValue)", type: "SocketEngineWebSocket")
5858

5959
ws?.write(string: "\(type.rawValue)\(str)")
6060

Source/SocketIO/Parse/SocketParsable.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ extension SocketParsable where Self: SocketIOClientSpec {
6363
case .error:
6464
handleEvent("error", data: pack.data, isInternalMessage: true, withAck: pack.id)
6565
default:
66-
DefaultSocketLogger.Logger.log("Got invalid packet: %@", type: "SocketParser", args: pack.description)
66+
DefaultSocketLogger.Logger.log("Got invalid packet: \(pack.description)", type: "SocketParser")
6767
}
6868
}
6969

@@ -137,16 +137,16 @@ extension SocketParsable where Self: SocketIOClientSpec {
137137
func parseSocketMessage(_ message: String) {
138138
guard !message.isEmpty else { return }
139139

140-
DefaultSocketLogger.Logger.log("Parsing %@", type: "SocketParser", args: message)
140+
DefaultSocketLogger.Logger.log("Parsing \(message)", type: "SocketParser")
141141

142142
do {
143143
let packet = try parseString(message)
144144

145-
DefaultSocketLogger.Logger.log("Decoded packet as: %@", type: "SocketParser", args: packet.description)
145+
DefaultSocketLogger.Logger.log("Decoded packet as: \(packet.description)", type: "SocketParser")
146146

147147
handlePacket(packet)
148148
} catch {
149-
DefaultSocketLogger.Logger.error("\(error): %@", type: "SocketParser", args: message)
149+
DefaultSocketLogger.Logger.error("\(error): \(message)", type: "SocketParser")
150150
}
151151
}
152152

Source/SocketIO/Util/SocketLogger.swift

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,34 +38,31 @@ public protocol SocketLogger : class {
3838
/// - parameter message: The message being logged. Can include `%@` that will be replaced with `args`
3939
/// - parameter type: The type of entity that called for logging.
4040
/// - parameter args: Any args that should be inserted into the message. May be left out.
41-
func log(_ message: String, type: String, args: Any...)
41+
func log(_ message: @autoclosure () -> String, type: String)
4242

4343
/// Error Messages
4444
///
4545
/// - parameter message: The message being logged. Can include `%@` that will be replaced with `args`
4646
/// - parameter type: The type of entity that called for logging.
4747
/// - parameter args: Any args that should be inserted into the message. May be left out.
48-
func error(_ message: String, type: String, args: Any...)
48+
func error(_ message: @autoclosure () -> String, type: String)
4949
}
5050

5151
public extension SocketLogger {
5252
/// Default implementation.
53-
func log(_ message: String, type: String, args: Any...) {
54-
abstractLog("LOG", message: message, type: type, args: args)
53+
func log(_ message: @autoclosure () -> String, type: String) {
54+
abstractLog("LOG", message: message, type: type)
5555
}
5656

5757
/// Default implementation.
58-
func error(_ message: String, type: String, args: Any...) {
59-
abstractLog("ERROR", message: message, type: type, args: args)
58+
func error(_ message: @autoclosure () -> String, type: String) {
59+
abstractLog("ERROR", message: message, type: type)
6060
}
6161

62-
private func abstractLog(_ logType: String, message: String, type: String, args: [Any]) {
62+
private func abstractLog(_ logType: String, message: @autoclosure () -> String, type: String) {
6363
guard log else { return }
6464

65-
let newArgs = args.map({arg -> CVarArg in String(describing: arg)})
66-
let messageFormat = String(format: message, arguments: newArgs)
67-
68-
NSLog("\(logType) \(type): %@", messageFormat)
65+
NSLog("\(logType) \(type): %@", message())
6966
}
7067
}
7168

0 commit comments

Comments
 (0)