C# – Do __LINE__ __FILE__ equivalents exist in C#


For logging purposes


were my friends in C/C++. In Java to get that information I had to throw an exception and catch it. Why are these old standbys so neglected in the modern programming languages? There is something magical about their simplicity.

Best Solution

Caller Information has been added to .NET 4.5. This will be compiled, a big improvement over having to examine the stack trace manually.

public void Log(string message,
        [CallerFilePath] string filePath = "",
        [CallerLineNumber] int lineNumber = 0)
    // Do logging

Simply call it in this manner. The compiler will fill in the file name and line number for you: