move Logger to static variable

This commit is contained in:
Erik 2015-11-04 17:19:45 -05:00
parent fe21fcc7e1
commit 0de8a65ff4
5 changed files with 49 additions and 48 deletions

View File

@ -116,7 +116,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
}
deinit {
Logger.log("Engine is being deinit", type: logType)
DefaultSocketLogger.Logger.log("Engine is being deinit", type: logType)
closed = true
stopPolling()
}
@ -135,7 +135,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
}
public func close() {
Logger.log("Engine is being closed.", type: logType)
DefaultSocketLogger.Logger.log("Engine is being closed.", type: logType)
pingTimer?.invalidate()
closed = true
@ -234,7 +234,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
private func doFastUpgrade() {
if waitingForPoll {
Logger.error("Outstanding poll when switched to WebSockets," +
DefaultSocketLogger.Logger.error("Outstanding poll when switched to WebSockets," +
"we'll probably disconnect soon. You should report this.", type: logType)
}
@ -247,7 +247,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
}
private func flushProbeWait() {
Logger.log("Flushing probe wait", type: logType)
DefaultSocketLogger.Logger.log("Flushing probe wait", type: logType)
dispatch_async(emitQueue) {[weak self] in
if let this = self {
@ -305,7 +305,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
}
}
} catch {
Logger.error("Error parsing open packet", type: logType)
DefaultSocketLogger.Logger.error("Error parsing open packet", type: logType)
return
}
@ -341,14 +341,14 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
public func open(opts: [String: AnyObject]? = nil) {
if connected {
Logger.error("Tried to open while connected", type: logType)
DefaultSocketLogger.Logger.error("Tried to open while connected", type: logType)
client?.didError("Tried to open while connected")
return
}
Logger.log("Starting engine", type: logType)
Logger.log("Handshaking", type: logType)
DefaultSocketLogger.Logger.log("Starting engine", type: logType)
DefaultSocketLogger.Logger.log("Handshaking", type: logType)
closed = false
@ -378,12 +378,12 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
}
private func parseEngineData(data: NSData) {
Logger.log("Got binary data: %@", type: "SocketEngine", args: data)
DefaultSocketLogger.Logger.log("Got binary data: %@", type: "SocketEngine", args: data)
client?.parseBinaryData(data.subdataWithRange(NSMakeRange(1, data.length - 1)))
}
private func parseEngineMessage(var message: String, fromPolling: Bool) {
Logger.log("Got message: %@", type: logType, args: message)
DefaultSocketLogger.Logger.log("Got message: %@", type: logType, args: message)
let type = SocketEnginePacketType(rawValue: Int((message["^(\\d)"].groups()?[1]) ?? "") ?? -1) ?? {
self.checkIfMessageIsBase64Binary(message)
@ -408,7 +408,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
case .Close:
handleClose()
default:
Logger.log("Got unknown packet type", type: logType)
DefaultSocketLogger.Logger.log("Got unknown packet type", type: logType)
}
}
@ -454,7 +454,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
private func upgradeTransport() {
if websocketConnected {
Logger.log("Upgrading transport to WebSockets", type: logType)
DefaultSocketLogger.Logger.log("Upgrading transport to WebSockets", type: logType)
fastUpgrade = true
sendPollMessage("", withType: .Noop)
@ -469,11 +469,11 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
dispatch_async(emitQueue) {
if self.connected {
if self.websocket {
Logger.log("Writing ws: %@ has data: %@", type: self.logType, args: msg,
DefaultSocketLogger.Logger.log("Writing ws: %@ has data: %@", type: self.logType, args: msg,
data == nil ? false : true)
self.sendWebSocketMessage(msg, withType: type, datas: data)
} else {
Logger.log("Writing poll: %@ has data: %@", type: self.logType, args: msg,
DefaultSocketLogger.Logger.log("Writing poll: %@ has data: %@", type: self.logType, args: msg,
data == nil ? false : true)
self.sendPollMessage(msg, withType: type, datas: data)
}
@ -512,7 +512,7 @@ extension SocketEngine {
return
}
Logger.log("Doing polling request", type: logType)
DefaultSocketLogger.Logger.log("Doing polling request", type: logType)
req.cachePolicy = .ReloadIgnoringLocalAndRemoteCacheData
session.dataTaskWithRequest(req, completionHandler: callback).resume()
@ -525,12 +525,12 @@ extension SocketEngine {
if this.polling {
this.handlePollingFailed(err?.localizedDescription ?? "Error")
} else {
Logger.error(err?.localizedDescription ?? "Error", type: this.logType)
DefaultSocketLogger.Logger.error(err?.localizedDescription ?? "Error", type: this.logType)
}
return
}
Logger.log("Got polling response", type: this.logType)
DefaultSocketLogger.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
@ -585,7 +585,7 @@ extension SocketEngine {
waitingForPost = true
Logger.log("POSTing: %@", type: logType, args: postStr)
DefaultSocketLogger.Logger.log("POSTing: %@", type: logType, args: postStr)
doRequest(req) {[weak self] data, res, err in
if let this = self {
@ -593,7 +593,7 @@ extension SocketEngine {
this.handlePollingFailed(err?.localizedDescription ?? "Error")
return
} else if err != nil {
Logger.error(err?.localizedDescription ?? "Error", type: this.logType)
DefaultSocketLogger.Logger.error(err?.localizedDescription ?? "Error", type: this.logType)
return
}
@ -648,7 +648,7 @@ extension SocketEngine {
/// Only call on emitQueue
private func sendPollMessage(var msg: String, withType type: SocketEnginePacketType,
datas:[NSData]? = nil) {
Logger.log("Sending poll: %@ as type: %@", type: logType, args: msg, type.rawValue)
DefaultSocketLogger.Logger.log("Sending poll: %@ as type: %@", type: logType, args: msg, type.rawValue)
doubleEncodeUTF8(&msg)
let strMsg = "\(type.rawValue)\(msg)"
@ -678,7 +678,7 @@ extension SocketEngine {
/// Only call on emitQueue
private func sendWebSocketMessage(str: String, withType type: SocketEnginePacketType,
datas:[NSData]? = nil) {
Logger.log("Sending ws: %@ as type: %@", type: logType, args: str, type.rawValue)
DefaultSocketLogger.Logger.log("Sending ws: %@ as type: %@", type: logType, args: str, type.rawValue)
ws?.writeString("\(type.rawValue)\(str)")

View File

@ -84,9 +84,9 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
case .Nsp(let nsp):
self.nsp = nsp
case .Log(let log):
Logger.log = log
DefaultSocketLogger.Logger.log = log
case .Logger(let logger):
Logger = logger
DefaultSocketLogger.Logger = logger
case .HandleQueue(let queue):
handleQueue = queue
default:
@ -109,12 +109,12 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
}
deinit {
Logger.log("Client is being deinit", type: logType)
DefaultSocketLogger.Logger.log("Client is being deinit", type: logType)
engine?.close()
}
private func addEngine() -> SocketEngine {
Logger.log("Adding engine", type: logType)
DefaultSocketLogger.Logger.log("Adding engine", type: logType)
let newEngine = SocketEngine(client: self, url: socketURL, options: options ?? [])
@ -133,7 +133,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
Pass true to fast if you're closing from a background task
*/
public func close() {
Logger.log("Closing socket", type: logType)
DefaultSocketLogger.Logger.log("Closing socket", type: logType)
reconnects = false
didDisconnect("Closed")
@ -158,7 +158,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
}
if status == .Closed {
Logger.log("Warning! This socket was previously closed. This might be dangerous!",
DefaultSocketLogger.Logger.log("Warning! This socket was previously closed. This might be dangerous!",
type: logType)
}
@ -202,7 +202,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
}
func didConnect() {
Logger.log("Socket connected", type: logType)
DefaultSocketLogger.Logger.log("Socket connected", type: logType)
status = .Connected
currentReconnectAttempt = 0
clearReconnectTimer()
@ -217,7 +217,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
return
}
Logger.log("Disconnected: %@", type: logType, args: reason)
DefaultSocketLogger.Logger.log("Disconnected: %@", type: logType, args: reason)
status = .Closed
reconnects = false
@ -229,7 +229,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
/// error
public func didError(reason: AnyObject) {
Logger.error("%@", type: logType, args: reason)
DefaultSocketLogger.Logger.error("%@", type: logType, args: reason)
handleEvent("error", data: reason as? [AnyObject] ?? [reason],
isInternalMessage: true)
@ -285,7 +285,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: %@", type: logType, args: str)
DefaultSocketLogger.Logger.log("Emitting: %@", type: logType, args: str)
if packet.type == .BinaryEvent {
engine?.send(str, withData: packet.binary)
@ -301,7 +301,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
let packet = SocketPacket.packetFromEmit(items, id: ack ?? -1, nsp: self.nsp, ack: true)
let str = packet.packetString
Logger.log("Emitting Ack: %@", type: self.logType, args: str)
DefaultSocketLogger.Logger.log("Emitting Ack: %@", type: self.logType, args: str)
if packet.type == SocketPacket.PacketType.BinaryAck {
self.engine?.send(str, withData: packet.binary)
@ -329,7 +329,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
func handleAck(ack: Int, data: AnyObject?) {
guard status == .Connected else {return}
Logger.log("Handling ack: %@ with data: %@", type: logType, args: ack, data ?? "")
DefaultSocketLogger.Logger.log("Handling ack: %@ with data: %@", type: logType, args: ack, data ?? "")
ackHandlers.executeAck(ack,
items: (data as? [AnyObject]) ?? (data != nil ? [data!] : []))
@ -344,7 +344,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
return
}
Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "")
DefaultSocketLogger.Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "")
dispatch_async(handleQueue) {
self.anyHandler?(SocketAnyEvent(event: event, items: data))
@ -374,7 +374,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
Joins nsp if it is not /
*/
public func joinNamespace() {
Logger.log("Joining namespace", type: logType)
DefaultSocketLogger.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: %@", type: logType, args: event)
DefaultSocketLogger.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: %@", type: logType, args: event)
DefaultSocketLogger.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 single-use handler for an event.
*/
public func once(event: String, callback: NormalCallback) {
Logger.log("Adding once handler for event: %@", type: logType, args: event)
DefaultSocketLogger.Logger.log("Adding once handler for event: %@", type: logType, args: event)
let id = NSUUID()
@ -468,7 +468,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
private func tryReconnect() {
if reconnectTimer == nil {
Logger.log("Starting reconnect", type: logType)
DefaultSocketLogger.Logger.log("Starting reconnect", type: logType)
status = .Reconnecting
@ -493,7 +493,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
return
}
Logger.log("Trying to reconnect", type: logType)
DefaultSocketLogger.Logger.log("Trying to reconnect", type: logType)
handleEvent("reconnectAttempt", data: [reconnectAttempts - currentReconnectAttempt],
isInternalMessage: true)

View File

@ -24,8 +24,6 @@
import Foundation
var Logger: SocketLogger = DefaultSocketLogger()
public protocol SocketLogger: class {
/// Whether to log or not
var log: Bool {get set}
@ -57,5 +55,7 @@ public extension SocketLogger {
}
class DefaultSocketLogger: SocketLogger {
static var Logger: SocketLogger = DefaultSocketLogger()
var log = false
}

View File

@ -109,7 +109,8 @@ struct SocketPacket {
message += jsonString! as String + ","
} catch {
Logger.error("Error creating JSON object in SocketPacket.completeMessage", type: SocketPacket.logType)
DefaultSocketLogger.Logger.error("Error creating JSON object in SocketPacket.completeMessage",
type: SocketPacket.logType)
}
} else if var str = arg as? String {
str = str["\n"] ~= "\\\\n"

View File

@ -56,7 +56,7 @@ class SocketParser {
case .Error:
socket.didError(pack.data)
default:
Logger.log("Got invalid packet: %@", type: "SocketParser", args: pack.description)
DefaultSocketLogger.Logger.log("Got invalid packet: %@", type: "SocketParser", args: pack.description)
}
}
@ -143,20 +143,20 @@ class SocketParser {
static func parseSocketMessage(message: String, socket: SocketIOClient) {
guard !message.isEmpty else { return }
Logger.log("Parsing %@", type: "SocketParser", args: message)
DefaultSocketLogger.Logger.log("Parsing %@", type: "SocketParser", args: message)
switch parseString(message) {
case .Left(let err):
Logger.error("\(err): %@", type: "SocketParser", args: message)
DefaultSocketLogger.Logger.error("\(err): %@", type: "SocketParser", args: message)
case .Right(let pack):
Logger.log("Decoded packet as: %@", type: "SocketParser", args: pack.description)
DefaultSocketLogger.Logger.log("Decoded packet as: %@", type: "SocketParser", args: pack.description)
handlePacket(pack, withSocket: socket)
}
}
static func parseBinaryData(data: NSData, socket: SocketIOClient) {
guard !socket.waitingData.isEmpty else {
Logger.error("Got data when not remaking packet", type: "SocketParser")
DefaultSocketLogger.Logger.error("Got data when not remaking packet", type: "SocketParser")
return
}