func extractCallerDetails() (file string, line int, pkg string, function string, err error) {
	if pc, file, line, ok := runtime.Caller(2); ok {
		fName := runtime.FuncForPC(pc).Name()

		parts := strings.Split(fName, ".")
		pl := len(parts)
		pName := ""

		if parts[pl-2][0] == '(' {
			pName = strings.Join(parts[0:pl-2], ".")
		} else {
			pName = strings.Join(parts[0:pl-1], ".")
		}

		pName = strings.Replace(pName, defaultPackageName, "", -1)

		return file, line, pName, fName, nil
	}

	return "", 0, "", "", errors.New("unable to extract the caller details")
}
// extractCallerDetails gets information about the file, line and function that
// called a certain logging method such as Error, Info, Debug, Warn and Panic.
extractCallerDetails gets information about the file, line and function that
called a certain logging method such as Error, Info, Debug, Warn and Panic.
// extractCallerDetails gets information about the file line and function that // called a certain logging method such as Error Info Debug Warn and Panic .
func extractCallerDetails() (file string, line int, pkg string, function string, err error) {
	if pc, file, line, ok := runtime.Caller(2); ok {
		fName := runtime.FuncForPC(pc).Name()
		parts := strings.Split(fName, ".")
		pl := len(parts)
		pName := ""
		if parts[pl-2][0] == '(' {
			pName = strings.Join(parts[0:pl-2], ".")
		} else {
			pName = strings.Join(parts[0:pl-1], ".")
		}
		pName = strings.Replace(pName, defaultPackageName, "", -1)
		return file, line, pName, fName, nil
	}
	return "", 0, "", "", errors.New("unable to extract the caller details")
}
func extractCallerDetails ( ) ( file string , line int , pkg string , function string , err error ) { if pc , file , line , ok := runtime . Caller ( 2 ) ; ok { fName := runtime . FuncForPC ( pc ) . Name ( ) parts := strings . Split ( fName , " " ) pl := len ( parts ) pName := " " if parts [ pl - 2 ] [ 0 ] == '(' { pName = strings . Join ( parts [ 0 : pl - 2 ] , " " ) } else { pName = strings . Join ( parts [ 0 : pl - 1 ] , " " ) } pName = strings . Replace ( pName , defaultPackageName , " " , - 1 ) return file , line , pName , fName , nil } return " " , 0 , " " , " " , errors . New ( " " ) }
extractCallerDetails gets information about the file, line and function that
called a certain logging method such as Error, Info, Debug, Warn and Panic.
extractCallerDetails gets information about the file line and function that called a certain logging method such as Error Info Debug Warn and Panic .