private String getKey(StackTraceElement[] traceArr, String capPoint, final boolean isLineKey) {
		final StringBuilder sb = new StringBuilder();
		/*
		 * ignore: 
		 * Last element: main()
		 * First 3 elements: .getStackTrace, start(), and startCapture()
		 */

		/*
		 * Trying to distinguish between overloaded methods is problematic since
		 * endCapture and startCapture will not be at the same line.
		 * 
		 * Workaround is to also include calling methods and line numbers.  Don't include
		 * line number for timing method since the capture start and end line numbers are
		 * not the same, and will not be able to match up the keys
		 */

		int lineKeyInt = isLineKey ? 0 : 1;
		for (int i = traceArr.length; i > IGNORE_TRACE_LEVEL; i--) {
			sb.append(traceArr.length - i + 1)
					.append(i == IGNORE_TRACE_LEVEL + lineKeyInt ? BLANK : LINE_SEPARATOR + getLineNum(traceArr[i-1]))
					.append(LEVEL_SEPARATOR)
					.append(getMethodName(traceArr[i-1]))
					.append(METH_SEPARATOR);
		}

		sb.append(BLANK.equals(capPoint) ? BLANK : CAPTURE_SEPARATOR + capPoint).append(METH_END);	//Add double || if capPoint is present

		return sb.toString();
	}