Was ist der beste Weg, ein Protokoll für jede Instanz einer Klasse in log4net zu erstellen?

8

Wir haben ein paar langlebige Objekte jeder Klasse im System. Es sind nur etwa 5 oder 6 und sie sind Verbindungen zu externen Systemen. Ich möchte, dass jede dieser Instanzen ihre eigene Datei hat, an die sie sich anmelden können.

Was ist der beste Weg, dies zu tun? Ich sehe nur Logger programmatisch als die Antwort jetzt hinzufügen.

UPDATE: Ich möchte vermeiden, die Konfigurationsdatei zu verwenden, denn wenn ich eine neue Verbindung zu einem anderen Remote-Host hinzufüge, möchte ich, dass die Protokollausgabe zu einer Datei geht, die nach der Verbindung benannt ist, ohne zuerst in einer Konfigurationsdatei herumhacken zu müssen. Es wäre schön, wenn es automatisch gemacht würde. Ich weiß nicht, vielleicht kann dies in einer Konfigurationsdatei einmal erreicht werden und Sie müssen es nicht jedes Mal bearbeiten.

    
uriDium 26.05.2011, 09:16
quelle

3 Antworten

1

Die beste Antwort ist die programmatische Protokollierung, ich habe das gleiche Problem durchgespielt und es als einzige Lösung gefunden.

Für mehr Hilfe überprüfen Sie diese Frage (meins) StackOverFlow Frage von mir gepostet

und ich ding deins und mein Problem sind die gleichen, dynamische Logger, re erstellen Logger, entsorgen Logger und all diese Sachen zur Laufzeit:)

wenn noch irgendwelche fragen, fragen sie, wird froh sein zu helfen, da ich all das durchgemacht habe:)

    
Basit Anwer 09.06.2011, 17:23
quelle
1

Ich kann tatsächlich ein paar Möglichkeiten sehen:

  1. Weisen Sie jeder Protokollierung für jede Verbindung eine andere Kategorie zu und hängen Sie Protokolle für jede Kategorie an verschiedene Dateien an.
  2. Erstellen Sie wie geplant neue Logger programmgesteuert.
  3. Verwenden Sie Dependency Injection, um so viele separate Logger zu injizieren, wie Sie benötigen.
Teoman Soygul 26.05.2011 09:23
quelle
0

Ich habe einen Artikel, der helfen könnte:

Ссылка

Hier geht es darum, eine Logdatei zur Laufzeit zu ändern. Sie können den Dateinamen für jede Instanz in Ihre log4net-Datei eingeben. Auf diese Weise können Sie eine Protokolldatei für jede Instanz Ihrer Klasse erstellen.

Wie bei Ihrer Bearbeitung, dass Sie keine Konfigurationsdatei verwenden möchten, löst diese Methode dieses Problem, sodass Sie eine Konfigurationsdatei verwenden können, aber dennoch die gewünschte Flexibilität haben.

    
IAmTimCorey 28.05.2011 20:45
quelle

Tags und Links