             }
         }
 
-        if willWriteLog {
-            let fileString = file as NSString
-            let fileLastPathComponent = fileString.lastPathComponent as NSString
-            let fileName = fileLastPathComponent.deletingPathExtension
-            let logIconString = level.iconString()
-            print("\(logIconString) \(fileName).\(function)[\(line)]: \(object)\n", terminator: "")
+        guard willWriteLog else { return }
+
+            if showExtraInfoes {
+                let fileString = file as NSString
+                let fileLastPathComponent = fileString.lastPathComponent as NSString
+                let fileName = fileLastPathComponent.deletingPathExtension
+                let logIconString = level.iconString()
+                print("\(logIconString) \(fileName).\(function)[\(line)]: \(object)\n", terminator: "")
+            } else {
+                print("\(object)\n", terminator: "")
         }
     }
 }

     - parameter function: Defaults to the name of the function within the file in which log() was called..
     - parameter line:     Defaults to the line number within the file in which log() was called.
     */
    fileprivate func write<T>(_ object: T, tags: Set<String>?, level: Level, file: String, function: String, line: Int) {
        if minLevel.rawValue > level.rawValue {
            return
        }

     - parameter function: Defaults to the name of the function within the file in which log() was called. Do not override this default.
     - parameter line:     Defaults to the line number within the file in which log() was called. Do not override this default.
     */
    public static func verbose<T>(_ object: T, tags: Set<String>? = nil, showExtraInfoes: Bool = true, _ file: String = #file, _ function: String = #function, _ line: Int = #line) {
        Log.shared.write(object, tags: tags, level: .verbose, file: file, function: function, line: line, showExtraInfoes: showExtraInfoes)
    }

    /**
     Writes the textual representation of `object` and a newline character into the standard output.
     The textual representation is obtained from the `object` using its protocol conformances,
     in the following order of preference: `Streamable`, `Printable`, `DebugPrintable`.
     This function also augments the original function with the filename, function name, and line number of the object that is being logged.
     - parameter object:   A textual representation of the object.
     - parameter tags:   Write log when filter tags contain at least one element in parametter tags.
     - parameter file:     Defaults to the name of the file that called log(). Do not override this default.
     - parameter function: Defaults to the name of the function within the file in which log() was called. Do not override this default.
     - parameter line:     Defaults to the line number within the file in which log() was called. Do not override this default.
     */
    public static func debug<T>(_ object: T, tags: Set<String>? = nil, showExtraInfoes: Bool = true, _ file: String = #file, _ function: String = #function, _ line: Int = #line) {
        Log.shared.write(object, tags: tags, level: .debug, file: file, function: function, line: line, showExtraInfoes: showExtraInfoes)
    }

    /**
     Writes the textual representation of `object` and a newline character into the standard output.
     The textual representation is obtained from the `object` using its protocol conformances,
     in the following order of preference: `Streamable`, `Printable`, `DebugPrintable`.
     This function also augments the original function with the filename, function name, and line number of the object that is being logged.
     - parameter object:   A textual representation of the object.
     - parameter tags:   Write log when filter tags contain at least one element in parametter tags.
     - parameter file:     Defaults to the name of the file that called log(). Do not override this default.
     - parameter function: Defaults to the name of the function within the file in which log() was called. Do not override this default.
     - parameter line:     Defaults to the line number within the file in which log() was called. Do not override this default.
     */
    public static func info<T>(_ object: T, tags: Set<String>? = nil, showExtraInfoes: Bool = true, _ file: String = #file, _ function: String = #function, _ line: Int = #line) {
        Log.shared.write(object, tags: tags, level: .info, file: file, function: function, line: line, showExtraInfoes: showExtraInfoes)
    }

    /**
     Writes the textual representation of `object` and a newline character into the standard output.
     The textual representation is obtained from the `object` using its protocol conformances,
     in the following order of preference: `Streamable`, `Printable`, `DebugPrintable`.
     This function also augments the original function with the filename, function name, and line number of the object that is being logged.
     - parameter object:   A textual representation of the object.
     - parameter tags:   Write log when filter tags contain at least one element in parametter tags.
     - parameter file:     Defaults to the name of the file that called log(). Do not override this default.
     - parameter function: Defaults to the name of the function within the file in which log() was called. Do not override this default.
     - parameter line:     Defaults to the line number within the file in which log() was called. Do not override this default.
     */
    public static func warning<T>(_ object: T, tags: Set<String>? = nil, showExtraInfoes: Bool = true, _ file: String = #file, _ function: String = #function, _ line: Int = #line) {
        Log.shared.write(object, tags: tags, level: .warning, file: file, function: function, line: line, showExtraInfoes: showExtraInfoes)
    }

    /**
     Writes the textual representation of `object` and a newline character into the standard output.
     The textual representation is obtained from the `object` using its protocol conformances,
     in the following order of preference: `Streamable`, `Printable`, `DebugPrintable`.
     This function also augments the original function with the filename, function name, and line number of the object that is being logged.
     - parameter object:   A textual representation of the object.
     - parameter tags:   Write log when filter tags contain at least one element in parametter tags.
     - parameter file:     Defaults to the name of the file that called log(). Do not override this default.
     - parameter function: Defaults to the name of the function within the file in which log() was called. Do not override this default.
     - parameter line:     Defaults to the line number within the file in which log() was called. Do not override this default.
     */
    public static func error<T>(_ object: T, tags: Set<String>? = nil, showExtraInfoes: Bool = true, _ file: String = #file, _ function: String = #function, _ line: Int = #line) {
        Log.shared.write(object, tags: tags, level: .error, file: file, function: function, line: line, showExtraInfoes: showExtraInfoes)
    }
}
