/// <summary>
        /// Builds the specified log event.
        /// </summary>
        /// <param name="logEvent">The log event.</param>
        /// <returns></returns>
        public virtual JObject Build(LogEvent logEvent)
        {
            var message      = logEvent.RenderMessage();
            var shortMessage = message.Truncate(Options.ShortMessageMaxLength);

            var gelfMessage = new GelfMessage
            {
                Version      = GelfVersion,
                Host         = hostName,
                ShortMessage = shortMessage,
                FullMessage  = message,
                Timestamp    = logEvent.Timestamp.DateTime.ConvertToNix(),
                Level        = LogLevelMapper.GetMappedLevel(logEvent.Level),
                StringLevel  = logEvent.Level.ToString(),
                Facility     = Options.Facility
            };

            var jsonObject = JObject.FromObject(gelfMessage);

            foreach (var property in logEvent.Properties)
            {
                AddAdditionalField(jsonObject, property);
            }

            return(jsonObject);
        }
示例#2
0
        public virtual JObject Build(LogEvent logEvent)
        {
            string message      = logEvent.RenderMessage();
            string shortMessage = message.ShortMessage(Options.ShortMessageMaxLength);

            var gelfMessage = new GelfMessage
            {
                Version      = GelfVersion,
                Host         = _hostName,
                ShortMessage = shortMessage,
                FullMessage  = message,
                Timestamp    = logEvent.Timestamp.DateTime,
                Level        = LogLevelMapper.GetMappedLevel(logEvent.Level),
                StringLevel  = logEvent.Level.ToString(),
                Facility     = Options.Facility
            };

            JObject jsonObject = JObject.FromObject(gelfMessage);

            foreach (KeyValuePair <string, LogEventPropertyValue> property in logEvent.Properties)
            {
                AddAdditionalField(jsonObject, property);
            }

            return(jsonObject);
        }
示例#3
0
 protected void LoggerOutput_DrawItem(object sender, DrawItemEventArgs e)
 {
     if (e?.Index >= 0)
     {
         LogItem item = (LogItem)LoggerOutput.Items[e.Index];
         e.DrawBackground();
         Graphics g = e.Graphics;
         g.FillRectangle(new SolidBrush(LogLevelMapper.ColorFromLevel(item.LogLevel)), e.Bounds);
         g.DrawString(item.LogMessage, e.Font, new SolidBrush(e.ForeColor), new PointF(e.Bounds.X, e.Bounds.Y));
         e.DrawFocusRectangle();
     }
 }
示例#4
0
        /// <summary>
        /// Builds the specified log event.
        /// </summary>
        /// <param name="logEvent">The log event.</param>
        /// <returns></returns>
        public virtual JObject Build(LogEvent logEvent)
        {
            string message      = logEvent.RenderMessage();
            string shortMessage = message.Truncate(Options.ShortMessageMaxLength);

            var gelfMessage = new GelfMessage
            {
                Version      = DefaultGelfVersion,
                Host         = Options.Host ?? _hostName,
                ShortMessage = shortMessage,
                Timestamp    = logEvent.Timestamp.ConvertToNix(),
                Level        = LogLevelMapper.GetMappedLevel(logEvent.Level),
                StringLevel  = logEvent.Level.ToString(),
                Facility     = Options.Facility
            };

            if (message.Length > Options.ShortMessageMaxLength)
            {
                gelfMessage.FullMessage = message;
            }

            JObject jsonObject = JObject.FromObject(gelfMessage);

            foreach (KeyValuePair <string, LogEventPropertyValue> property in logEvent.Properties)
            {
                AddAdditionalField(jsonObject, property);
            }

            if (Options.IncludeMessageTemplate)
            {
                string messageTemplate = logEvent.MessageTemplate.Text;
                jsonObject.Add($"_{Options.MessageTemplateFieldName}", messageTemplate);
            }

            return(jsonObject);
        }