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

    
    public let id: Id
    public var level: Level
    public private(set) var handlers: [FileHandle]
    public weak var bypass: Logger? = nil
    
    private init(_ id: Id) {
        self.id = id
        self.level = .warning
        self.handlers = [FileHandle.standardOutput]
    }
    
    public static func get(_ id: Id) -> Logger {

        
        let date = Date()
        
        try 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)
