             self.name = name
             self.formatter = formatter
         }
+
+        // TEST
+
+
+        // TEST
+
 
         // MARK: public
 


        // MARK: init

        init(logger: String, level : String, message: String, thread: String, file: String, function: String, line: Int, column: Int, timestamp : NSDate) {
            self.logger   = logger
            self.level    = level
            self.message  = message

//

public class LogFormatter {
    // MARK: local classes

    struct Color {
        // MARK: Instance data

        var r : Int
        var g : Int
        var b : Int

        init(r : Int, g : Int, b : Int) {
            self.r = r
            self.g = g
            self.b = b
        }
    }

    // MARK: static data

    static var colors: [Color] = [
            Color(r: 120, g: 120, b: 120),
            Color(r: 0,   g: 180, b: 180),
            Color(r: 0,   g: 150, b: 0),
            Color(r: 255, g: 190, b: 0),
            Color(r: 255, g: 0,   b: 0),
            Color(r: 160, g: 32,  b: 240)
    ]

    static let ESCAPE = "\u{001b}["
    static let RESET_FG = ESCAPE + "fg;" // Clear any foreground color
    static let RESET_BG = ESCAPE + "bg;" // Clear any background color
    static let RESET = ESCAPE + ";"      // Clear any foreground or background color

    // class funcs

    public static func colorize<T>(object: T, level: LogManager.Level) -> String {
        let color = colors[level.rawValue - 1] // starts with OFF

        return "\(ESCAPE)fg\(color.r),\(color.g),\(color.b);\(object)\(RESET)"
    }

    // formatting api

    public class func string(value : String) -> LogFormatter{
