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;

GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

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!