public static string Exception(Exception e, bool callStack = true)
{
if (e == null) return null;
string eName = Type(e.GetType());
string eSite = e.TargetSite != null ? MemberInfo(e.TargetSite) : null;
return string.Format(System.Globalization.CultureInfo.InvariantCulture,
"{0}{1}: {2}{4}CallStack:{4}{3}",
eName,
eSite != null ? " at " + eSite : "",
e.Message,
e.StackTrace,
Environment.NewLine);
}