2016-09-26 54 views
0

我已經寫了一個log4net appender,它繼承自一個轉發appender,我想在其中編輯loggingEvent,所以我的下一組appender具有正確的信息。編輯Log4Net loggingEventData而不會丟失messageobject

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); 
    } 

這很好,但是,它失去了原來的messageobject,在我的另一套自定義appender導致麻煩。有沒有辦法編輯時間戳,而不會丟失原始的messageobject?

回答

0

不,你不能編輯時間戳,因爲它沒有setter。看來你必須看看你的自定義appender來解決你的問題。