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);
 }
예제 #2
0
        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;
        }