2016-09-26 8 views
0

Ich habe einen log4net Appender geschrieben, der von einem Weiterleitungsappender erbt, in dem ich das loggingEvent so bearbeiten möchte, damit meine nächsten Appender die richtigen Informationen haben.Log4Net loggingEventData bearbeiten ohne messageobject zu verlieren

protected override void Append(LoggingEvent loggingEvent) 
    { 
     if (loggingEvent.MessageObject.GetType() == typeof(CustomLogObject)) 
     { 
      var logentry = (CustomLogObject)loggingEvent.MessageObject; 
      var data = loggingEvent.GetLoggingEventData(); 
      data.TimeStamp = logentry.toLocalTime(); 
      data.ThreadName= logentry.url; 
      loggingEvent = new LoggingEvent(data); 
     } 
     base.Append(loggingEvent); 
    } 

Dies funktioniert jedoch in Ordnung, es die ursprüngliche messageobject verliert, die in meinem anderen Satz von benutzerdefinierten Appen Probleme verursacht. Gibt es eine Möglichkeit, den Zeitstempel zu bearbeiten, ohne dass das ursprüngliche Nachrichtenobjekt verloren geht?

Antwort

0

Nein, Sie können den Zeitstempel nicht bearbeiten, da kein Setter vorhanden ist. Es scheint, dass Sie in Ihren benutzerdefinierten Appender schauen müssen, um Ihr Problem zu beheben.

Verwandte Themen