 
   open var endAt: Date?
 
+  public let file: String
+  public let function: String
+  public let line: UInt
+
   // MARK: - Initializers
 
-  public required init(name: String, threshold: TimeInterval? = nil) {
+  public required init(name: String, threshold: TimeInterval? = nil, file: String = #file, function: String = #function, line: UInt = #line) {
 
     self.name = name
     self.threshold = threshold
+    self.file = file
+    self.function = function
+    self.line = line
   }
 
   @discardableResult

// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

open class Measure: Hashable {

  public struct Result {


  // MARK: - Properties

  open static var defaultLogger: MeasureLoggerType?

  open var logger: MeasureLoggerType? = Measure.defaultLogger

  open let name: String

  open var threshold: TimeInterval?
