     public class LogEntry {
         // MARK: instance data
 
-        var level    : String
+        var level    : Level
         var logger   : String
         var message  : String
         var thread: String

    }

    public class func level() -> LogFormatter {
        return LogFormatter { $0.level }
    }

    public class func logger() -> LogFormatter {

        public func log<T>(level : Level, @autoclosure message: () -> T, file: String = #file, function: String = #function, line: Int = #line, column: Int = #column) -> Void {
            if isApplicable(level) {
                let msg = message()
                let entry = LogEntry(logger: path, level : level, message: "\(msg)", thread: currentThreadName(), file: file, function: function, line: line, column: column, timestamp : NSDate())

                for destination in allDestinations {
                    destination.log(entry)
