 Logs messages to the added destinations based on LogLevel flags.
 */
 @objc(THGLogger)
-public final class Logger: NSObject {
+public class Logger: NSObject {
 
     /**
     The default logger instance.  This is typically a LogConsoleDestination with a log level of .Debug.
     */
     public static let defaultInstance = loggerDefault()
+    
+    /**
+    Allows this logger to be enabled/disabled.
+    */
+    public var enabled: Bool {
+        get {
+            objc_sync_enter(self)
+            let value = _enabled
+            objc_sync_exit(self)
+            return value
+        }
+        set(value) {
+            objc_sync_enter(self)
+            _enabled = value
+            objc_sync_exit(self)
+        }
+    }
+    private var _enabled = false
+    
+    public override init() {
+        super.init()
+        let console = LogConsoleDestination(level: [.Debug, .Error])
+        addDestination(console)
+    }
 
     /**
     Dispatches the provided log information to the logging destination.

    }

    private func log(detail: LogDetail) {
        for destination in destinations.values {
            if let rawLevel = detail.level {
                let level: LogLevel = LogLevel(rawValue: rawLevel)

/// Private convenience method for instantiating the default logging scheme.
private func loggerDefault() -> Logger {
    let logger = Logger()
    logger.enabled = true
    return logger
}

