     
     public let id: Id
     public var level: Level
+    
     public private(set) var handlers: [FileHandle]
     public weak var bypass: Logger? = nil
+    
+    private let dateFormatter: DateFormatter
     
     private init(_ id: Id) {
         self.id = id
         self.level = .warning
         self.handlers = [FileHandle.standardOutput]
+        
+        self.dateFormatter = DateFormatter()
+        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
     }
     
     public static func get(_ id: Id) -> Logger {

        
        let date = Date()
        
        block()
        
        let time = -date.timeIntervalSinceNow
        let timeStr = (time < 1)
            ? "\(round(time * dec * 1000) / dec) msec."
            : "\(round(time * dec) / dec) sec."
        
        log("end: \(aLabel), \(timeStr)")
        
        return time
    }
    
    public func newLine(_ count: Int = 1) {
        let str = String(repeating: "\n", count: count)
        write(str)

    public func log(level: Level = .info, _ msg: @autoclosure () -> String) {
        if level >= self.level {
            let label = "\(id)\( level > .info ? ":\(level)" : "" )"
            let date = dateFormatter.string(from: Date())
            let str = "\(date) [\(label)] \(msg())\n"
            write(str)
        }
    }
