Kann ich Argumente an einen benutzerdefinierten Konstruktor von log4net Appender übergeben?

8

Ich würde gerne Argumente an einen benutzerdefinierten Appender-Konstruktor übergeben, also muss ich den Initialisierungsmechanismus von Appender überschreiben. Das Problem ist, dass ich in den Dokumenten keinen Weg finden kann, es anzuhängen, und es lässt mich denken, dass es nicht möglich ist (oder dass die Dokumente unvollständig sind).

Wie in Version 1.2.10 ist dies ohne Änderung des Quellcodes nicht möglich. Der relevante Abschnitt ist in Repository\Hierarchy\XmlHierarchyConfigurator.cs:L286 :

%Vor%

Wie Sie sehen können, sollte es diese Überladung (oder etwas auf diesem Weg) nutzen, damit ich meine Bedürfnisse erfüllen kann.

%Vor%     
Simone 15.10.2010, 10:23
quelle

2 Antworten

4

Ich bin mir nicht sicher, ob ich Ihr Ziel verstehe, aber wenn Sie möchten, dass Ihr Appender konfigurierbar ist, müssen Sie eine Eigenschaft auf Ihrem Appender offenlegen. Dann können Sie diese Eigenschaft entweder programmgesteuert oder in der Konfigurationsdatei festlegen.

Der UdpAppender macht eine Eigenschaft wie folgt verfügbar:

%Vor%

(Es ist tatsächlich ein bisschen komplexer, da sie prüfen, ob der Wert im Setter ein gültiger Port ist.)

In der Konfigurationsdatei verwenden Sie es wie folgt:

%Vor%

Dies funktioniert sehr gut für einfache Typen wie string, int ... aber auch für einige komplexe Typen wie IPAddress . Wenn Sie Ihren eigenen Typ haben, wird es schwieriger, es zum Laufen zu bringen, und ich würde zuerst prüfen müssen, wie das gemacht wird.

    
Stefan Egli 15.10.2010 11:09
quelle
1

Wie in Version 1.2.10 ist dies ohne Änderung des Quellcodes nicht möglich.

Der relevante Abschnitt befindet sich in Repository \ Hierarchy \ XmlHierarchyConfigurator.cs in Zeile 286:

%Vor%

Wie Sie sehen können, sollte

verwendet werden
'IAppender appender = (IAppender)Activator.CreateInstance(SystemInfo.GetTypeFromString(typeName, true, true));'
overload (oder etwas auf diesem Weg), damit ich meine Bedürfnisse erfüllen kann.     
Simone 18.10.2010 13:43
quelle

Tags und Links