编辑Log4Net loggingEventData而不会丢失messageobject

时间:2016-09-26 15:19:22

标签: c# .net logging log4net log4net-appender

我已经编写了一个log4net appender,它继承了一个转发appender,我想在其中编辑loggingEvent,所以我的下一组appender拥有正确的信息。

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中会导致麻烦。有没有办法编辑时间戳而不会丢失原始的消息对象?

1 个答案:

答案 0 :(得分:0)

否则您无法编辑时间戳,因为它没有设置器。看来你必须调查你的自定义appender来解决你的问题。