From 4de06525687234ff44a8a070556b807e4e875c5f Mon Sep 17 00:00:00 2001 From: Lukas Schmidt Date: Fri, 4 Sep 2015 13:48:19 +0200 Subject: [PATCH] improve logger api --- SocketIOClientSwift/SocketEngine.swift | 16 +++++------ SocketIOClientSwift/SocketIOClient.swift | 5 ++-- SocketIOClientSwift/SocketLogger.swift | 35 +++++++++--------------- SocketIOClientSwift/SocketParser.swift | 2 +- 4 files changed, 23 insertions(+), 35 deletions(-) diff --git a/SocketIOClientSwift/SocketEngine.swift b/SocketIOClientSwift/SocketEngine.swift index bd32394..564c560 100644 --- a/SocketIOClientSwift/SocketEngine.swift +++ b/SocketIOClientSwift/SocketEngine.swift @@ -24,9 +24,7 @@ import Foundation -public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { - public let logType = "SocketEngine" - +public final class SocketEngine: NSObject, WebSocketDelegate { private typealias Probe = (msg: String, type: PacketType, data: [NSData]?) private typealias ProbeWaitQueue = [Probe] @@ -199,7 +197,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { private func doFastUpgrade() { if waitingForPoll { - Logger.err("Outstanding poll when switched to WebSockets," + + Logger.error("Outstanding poll when switched to WebSockets," + "we'll probably disconnect soon. You should report this.", client: self, altType: nil) } @@ -248,7 +246,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { if this.polling { this.handlePollingFailed(err?.localizedDescription ?? "Error") } else { - Logger.err(err?.localizedDescription ?? "Error", client: this, altType: nil) + Logger.error(err?.localizedDescription ?? "Error", client: this, altType: nil) } return } @@ -412,7 +410,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { } } } catch { - Logger.err("Error parsing open packet", client: self, altType: nil) + Logger.error("Error parsing open packet", client: self, altType: nil) return } @@ -448,7 +446,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { public func open(opts: [String: AnyObject]? = nil) { if connected { - Logger.err("Tried to open while connected", client: self, altType: nil) + Logger.error("Tried to open while connected", client: self, altType: nil) client?.didError("Tried to open while connected") return @@ -512,7 +510,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { length += chr } else { if length == "" || testLength(length, n: &n) { - Logger.err("Parsing error: %@", client: self, altType: nil, args: str) + Logger.error("Parsing error: %@", client: self, altType: nil, args: str) handlePollingFailed("Error parsing XHR message") return } @@ -520,7 +518,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { msg = String(strArray[i+1...i+n]) if let lengthInt = Int(length) where lengthInt != msg.characters.count { - Logger.err("Parsing error: %@", client: self, altType: nil, args: str) + Logger.error("Parsing error: %@", client: self, altType: nil, args: str) return } diff --git a/SocketIOClientSwift/SocketIOClient.swift b/SocketIOClientSwift/SocketIOClient.swift index 40964bf..faa122e 100644 --- a/SocketIOClientSwift/SocketIOClient.swift +++ b/SocketIOClientSwift/SocketIOClient.swift @@ -24,7 +24,7 @@ import Foundation -public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient { +public final class SocketIOClient: NSObject, SocketEngineClient { private var anyHandler: ((SocketAnyEvent) -> Void)? private var currentReconnectAttempt = 0 private var handlers = ContiguousArray() @@ -38,7 +38,6 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient public let emitQueue = dispatch_queue_create("emitQueue", DISPATCH_QUEUE_SERIAL) public let handleQueue: dispatch_queue_t! - public let logType = "SocketClient" public let socketURL: String public private(set) var engine: SocketEngine? @@ -224,7 +223,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient /// error public func didError(reason: AnyObject) { - Logger.err("%@", client: self, altType: nil, args: reason) + Logger.error("%@", client: self, altType: nil, args: reason) handleEvent("error", data: reason as? [AnyObject] ?? [reason], isInternalMessage: true) diff --git a/SocketIOClientSwift/SocketLogger.swift b/SocketIOClientSwift/SocketLogger.swift index af2cfe8..e1503a8 100644 --- a/SocketIOClientSwift/SocketLogger.swift +++ b/SocketIOClientSwift/SocketLogger.swift @@ -26,43 +26,34 @@ import Foundation var Logger: SocketLogger = DefaultSocketLogger() -public protocol SocketLogClient { - /// The type of object being logged - var logType: String {get} -} - public protocol SocketLogger { /// Whether to log or not var log: Bool {get set} /// Normal log messages - func log(message: String, client: SocketLogClient, altType: String?, args: AnyObject...) + func log(message: String, client: AnyObject, altType: String?, args: AnyObject...) /// Error Messages - func err(message: String, client: SocketLogClient, altType: String?, args: AnyObject...) + func error(message: String, client: AnyObject, altType: String?, args: AnyObject...) } public extension SocketLogger { - func log(message: String, client: SocketLogClient, altType: String?, args: AnyObject...) { - if !log { - return - } - - let newArgs = args.map {arg -> CVarArgType in String(arg)} - let replaced = String(format: message, arguments: newArgs) - - NSLog("%@: %@", altType ?? client.logType, replaced) + func log(message: String, client: AnyObject, altType: String?, args: AnyObject...) { + abstractLog("Log", message: message, client: client, altType: altType, args: args) } - func err(message: String, client: SocketLogClient, altType: String?, args: AnyObject...) { - if !log { - return - } + func error(message: String, client: AnyObject, altType: String?, args: AnyObject...) { + abstractLog("ERROR", message: message, client: client, altType: altType, args: args) + + } + + private func abstractLog(type:String, message: String, client: AnyObject, altType: String?, args:Array) { + guard log else { return } let newArgs = args.map {arg -> CVarArgType in String(arg)} let replaced = String(format: message, arguments: newArgs) - - NSLog("ERROR %@: %@", altType ?? client.logType, replaced) + let sourceString = NSStringFromClass(object_getClass(client)) + NSLog("%@ %@: %@",type, altType ?? sourceString, replaced) } } diff --git a/SocketIOClientSwift/SocketParser.swift b/SocketIOClientSwift/SocketParser.swift index e06681d..8f43d2d 100644 --- a/SocketIOClientSwift/SocketParser.swift +++ b/SocketIOClientSwift/SocketParser.swift @@ -210,7 +210,7 @@ class SocketParser { static func parseBinaryData(data: NSData, socket: SocketIOClient) { if socket.waitingData.count == 0 { - Logger.err("Got data when not remaking packet", client: socket, altType: "SocketParser") + Logger.error("Got data when not remaking packet", client: socket, altType: "SocketParser") return }