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]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

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

Nach Teilnahme an dieser Schulung kennen Sie alle wesentlichen Funktionen des TFS für Entwickler. Sie setzen Software-Entwicklung mit dem Visual Studio Team Foundation Server erfolgreich um.

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!