 	/// Information level log message
 	///
 	/// - Parameter message: description as a String
-	@inline(__always) public static func info(_ message: String) {
+	@inline(__always) public static func info(_ message: String, file: String = #file, function: String = #function, line: Int = #line) {
 		if logLevel.rawValue <= LogLevel.INFO.rawValue {
-			output("INFO: \(message)")
+			output("INFO:[\(file.fileName).\(function):\(line)] \(message)")
 		}
 	}
 
 	/// Warning level log message
 	///
 	/// - Parameter message: description as a String
-	@inline(__always) public static func warn(_ message: String) {
+	@inline(__always) public static func warn(_ message: String, file: String = #file, function: String = #function, line: Int = #line) {
 		if logLevel.rawValue <= LogLevel.WARN.rawValue {
-			output("WARN: \(message)")
+			output("WARN:[\(file.fileName).\(function):\(line)] \(message)")
 		}
 	}
 
 	/// Error level log message
 	///
 	/// - Parameter message: description as a String
-	static public func error(_ message: String) {
+	static public func error(_ message: String, file: String = #file, function: String = #function, line: Int = #line) {
 		if logLevel.rawValue <= LogLevel.ERROR.rawValue {
-			output("ERROR: \(message)")
+			output("ERROR:[\(file.fileName).\(function):\(line)] \(message)")
 		}
 	}
 
 	/// Error level log message
 	///
 	/// - Parameter error: Error object
-	static public func error(_ error: Error) {
+	static public func error(_ error: Error, file: String = #file, function: String = #function, line: Int = #line) {
 		if logLevel.rawValue <= LogLevel.ERROR.rawValue {
-			output("ERROR: \(error.localizedDescription)")
+			output("ERROR:[\(file.fileName).\(function):\(line)] \(error.localizedDescription)")
 		}
 	}
 
 	/// Fatal level log message
 	///
 	/// - Parameter message: description as a String
-	static public func fatal(_ message: String) {
-		output("FATAL: \(message)")
+	static public func fatal(_ message: String, file: String = #file, function: String = #function, line: Int = #line) {
+		output("FATAL:[\(file.fileName).\(function):\(line)] \(message)")
 	}
 
 	/// Outputs the file, function, and line stamp to stdout

	/// Debug level log message
	///
	/// - Parameter object: Any optional to print as a debug string
	@inline(__always) public static func debug(_ object: Any?) {
		if logLevel.rawValue <= LogLevel.DEBUG.rawValue {
			if object == nil {
				output("DEBUG: [empty optional]")
			} else {
				output("DEBUG: \(object.debugDescription)")
			}
		}
	}

	///   - function: function name as a String (should not be provided)
	///   - file: file name as a String (should not be provided)
	///   - line: line as an Int (should not be provided)
	@inline(__always) public static func stamp(file: String = #file, function: String = #function, line: Int = #line) {
		if logLevel.rawValue <= LogLevel.DEBUG.rawValue {
			 output("[File:\(file), Function:\(function), Line:\(line)]")
		}
