protected override void Append(LoggingEvent loggingEvent) { var newData = loggingEvent.GetLoggingEventData(); newData.Message = Decorate(newData.Message); loggingEvent.GetType() .GetField("m_data", BindingFlags.NonPublic | BindingFlags.Instance) .SetValue(newData, loggingEvent); base.Append(loggingEvent); }
public LoggingEvent GetReconstructedLoggingEvent(ILoggerRepository renderingRepo) { LoggingEvent ret = new LoggingEvent(null, renderingRepo, null, _LoggingEvent.Level, _MessageObject, _LoggedException); BindingFlags eFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; FieldInfo pi; LoggingEventData data = _LoggingEvent.GetLoggingEventData(FixFlags.None); //reset message so it gets rendered again data.Message = null; pi = ret.GetType().GetField("m_data", eFlags); if (pi != null) { pi.SetValue(ret, data); } //reflectivly set the rest of the properties. ret.Fix = FixFlags.Exception | FixFlags.Message; return ret; }