         return time
     }
     
-    @discardableResult
-    public func clear() -> String {
-        defer { log = "" }
-        return log
+    public func newLine(_ count: Int = 1) {
+        let str = String(repeating: "\n", count: count)
+        write(str)
+    }
+    
+    public func newSection() {
+        let str = "\n------------------------------\n"
+        write(str)
     }
 }

    
    public func log(level: Level = .info, _ msg: @autoclosure () -> String) {
        if level >= self.level {
            let str = "[\(id):\(level)] \(msg())\n"
            if storeLog {
                log += str
            }
            
            let data = str.data(using: .utf8)!
            for hdl in handlers {
                hdl.write(data)

    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 {
