Considering that the debug data file is available (PDB) and by using either System.Reflection or another similar framework such as Mono.Cecil
Up to date method:
private static void Log(string text,
[CallerFilePath] string file = "",
[CallerMemberName] string member = "",
[CallerLineNumber] int line = 0)
{
Console.WriteLine("{0}_{1}({2}): {3}", Path.GetFileName(file), member, line, text);
}
New Framework API which populates arguments (marked with special attributes) at runtime,
see more in my answer to this SO question