Feedback

Loggen inklusive Zeilennummer, CS-Dateiname und Methodenname

Sprache: C#

Diese Methode gibt im VS Output zum Beispiel folgenden Output aus: [code]test message at file e:PlaygroundLine NumerLine NumerProgram.cs:11 method: Main[/code] wenn Sie wie folgt aufgerufen wird: LogMessage("test message"); Es werden folgende Usings benötigt: [code]using System; using System.Diagnostics; using System.Runtime.CompilerServices;[/code]
static void LogMessage(string message, [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string caller = null, [CallerFilePath] string file = null)
{
    Debug.Write(string.Format("{0} at file {1}:{2} method: {3}", message, file, lineNumber, caller));
}
static void LogMessage(string message, [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string caller = null, [CallerFilePath] string file = null)
{
    Debug.Write(string.Format("{0} at file {1}:{2} method: {3}", message, file, lineNumber, caller));
}

3 Kommentare

  1. Die aufrufende Assembly könnte durchaus noch interessant sein:

    [code]static void LogMessage(string message, [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string caller = null, [CallerFilePath] string file = null)
    {
    var assembly = System.Reflection.Assembly.GetCallingAssembly();
    Debug.Write($“{message} at assembly:{assembly} in file {file}:{lineNumber} method: {caller}“);
    }[/code]