Feedback

C# - Loggen inklusive Zeilennummer, CS-Dateiname und Methodenname

Veröffentlicht von am 15.02.2016
(0 Bewertungen)
Diese Methode gibt im VS Output zum Beispiel folgenden Output aus:

test message at file e:\Playground\Line Numer\Line Numer\Program.cs:11 method: Main


wenn Sie wie folgt aufgerufen wird: LogMessage("test message");

Es werden folgende Usings benötigt:

using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;

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 zum Snippet

Till Wolff schrieb am 16.02.2016:
<klugscheiss version="C# 6.0">
$"{message} at file {file}:{lineNumber} method: {caller}"
</klugscheiss>
dontbyteme schrieb am 18.02.2016:
Die aufrufende Assembly könnte durchaus noch interessant sein:

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}");
}
Jan Welker schrieb am 18.02.2016:
Auch nicht schlecht.
 

Logge dich ein, um hier zu kommentieren!