So protokollieren Sie den vom Code eingeschlagenen „Pfad“ und seine AusnahmenC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 So protokollieren Sie den vom Code eingeschlagenen „Pfad“ und seine Ausnahmen

Post by Anonymous »

Ich muss die Protokollnachricht über den Pfad verfassen, den ein Code bei einem Benutzerklick einschlägt. Lassen Sie mich ein Beispiel geben:
Stellen Sie sich das klassische Beispiel vor: Ein Benutzer klickt auf eine Schaltfläche in einer Ansicht, die Code aus der Business-Schicht aufruft, der wiederum Code aus der Datenzugriffsschicht aufruft, der Daten zurückgibt zum Geschäft, die zu einer Ansicht zurückkehren.
Ich möchte meine Protokollnachricht über diese Ebenen verfassen. Die aufrufende Methode (in einer Ansicht), die den gesamten Prozess gestartet hat, erhält die vollständige Nachricht. Hier sind einige Codebeispiele, um mir zu erklären, was ich erreichen möchte.

Code: Select all

public void ViewMethod()
{
try
{
BusinessMethod();
}
catch (Exception ex)
{
Logger.Enqueue("exception occurred");
Logger.Print();
}
}

public void BusinessMethod()
{
try
{
DataAccessMethod();
}
catch (Exception ex)
{
Logger.Enqueue("Exception occurred in the business method")
}
}

public void DataAccessMethod()
{
try
{
// some code that executes an SQL command
// Log the SQL Command 1
// Log the SQL Command 2 and do on...
}
catch (Exception ex)
{
Logger.Enqueue("Error occurred, SQL executed is ...", sqlExecuted);
}
}
BEARBEITEN: Der Grund, warum ich das brauche, ist, dass ich alle im gesamten Prozess ausgeführten SQLs protokollieren muss. Wenn an irgendeinem Punkt des gesamten Prozesses ein Fehler auftritt, kann der Benutzer nicht gewarnt werden. Ich muss so viele Informationen wie möglich speichern, da der Supporttechniker sie später benötigen wird.
Meine Frage ist Gibt es ein Entwurfsmuster für die Entwicklung oder ist die Übergabe einer Logger-Referenz über die „Ebenen“ akzeptabel?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post