Tracing versus Logging und wie fügt sich log4net ein?

Ich frage mich, was der Unterschied zwischen Protokollierung und Nachverfolgung ist.

Ist der Unterschied im Grunde genommen, dass die Ablaufverfolgung ein detaillierteres Protokoll ist, das Entwicklern ein Tool zum Debuggen von Anwendungen zur Laufzeit bietet?

Ich habe mit log4net experimentiert und mich angemeldet. Jetzt frage ich mich, ob ich auch ein Tracing durchführen soll und ob ich log4net für diesen Zweck verwenden könnte / sollte. Sollte ich mit log4net ein Tracing durchführen und gibt es eine Trace-Ebene für log4net-Logger? Sollte ich für Debug- und Trace-Zwecke eine andere Protokollstufe verwenden oder ist es in Ordnung, dieselbe zu verwenden? Können Sie ein einfaches Beispiel geben, wie ich eine einfache Methode protokollieren und verfolgen würde?

Bearbeiten: Trotz einiger hilfreicher Antworten im Folgenden bin ich mir immer noch nicht sicher, wie ich die Nachverfolgung im Vergleich zur Protokollierung durchführen soll.

In meiner Business-Schicht gibt es die folgende Methode, und ich möchte die Protokollierung / Ablaufverfolgung hinzufügen. Ich frage mich, wie ich es effizient machen kann. Ist die folgende Methode für die Protokollierung / Nachverfolgung akzeptabel? Sollten die Protokollnachrichten vom Typ Info statt Debug sein? Werden die Debug-Meldungen, die ich protokolliere, als Trace betrachtet? Wie würdest du das ändern?


IEnumerable<Car> GetCars()
{
   try
   {
      logger.Debug("Getting cars");
      IEnumerable<Car> cars = CarAccessor.GetCars().ConvertAll(DataAccessToBusinessConverter);
      logger.Debug("Got total of " + cars.Count + " cars"); 
   } catch (Exception e) {
      logger.Error("Error when getting cars", e);
      throw new Exception("Unexpected error when getting cars");
   }
}

Antworten auf die Frage(7)

Ihre Antwort auf die Frage