public IEnumerable <LogDatum> ProcessEvent(LoggingEvent loggingEvent, string renderedString)
        {
            var patternParser = new PatternParser(loggingEvent);

            if (renderedString.Contains("%"))
            {
                renderedString = patternParser.Parse(renderedString);
            }

            LogLog.Debug(_declaringType, string.Format("RenderedString: {0}", renderedString));

            if (!_hasParsedProperties)
            {
                ParseProperties(patternParser);
                _hasParsedProperties = true;
            }

            _logsEventMessageParser = new LogsEventMessageParser(renderedString, _configOverrides)
            {
                DefaultStreamName = _parsedStreamName,
                DefaultGroupName  = _parsedGroupName,
                DefaultMessage    = _parsedMessage,
                DefaultTimestamp  = _dateTimeOffset ?? loggingEvent.TimeStamp
            };

            _logsEventMessageParser.Parse();

            return(_logsEventMessageParser.GetParsedData());
        }
        public IEnumerable <PutMetricDataRequest> ProcessEvent(LoggingEvent loggingEvent, string renderedString)
        {
            var patternParser = new PatternParser(loggingEvent);

            if (renderedString.Contains("%"))
            {
                renderedString = patternParser.Parse(renderedString);
            }

            LogLog.Debug(_declaringType, string.Format("RenderedString: {0}", renderedString));

            if (!_hasParsedProperties)
            {
                ParseProperties(patternParser);
                _hasParsedProperties = true;
            }

            _metricDatumEventMessageParser = new MetricDatumEventMessageParser(renderedString, _configOverrides)
            {
                DefaultMetricName = _parsedMetricName,
                DefaultNameSpace  = _parsedNamespace,
                DefaultUnit       = _unit,
                DefaultDimensions = _parsedDimensions,
                DefaultTimestamp  = _dateTimeOffset
            };

            if (!string.IsNullOrEmpty(_value) && _configOverrides)
            {
                _metricDatumEventMessageParser.DefaultValue = Double.Parse(_value, CultureInfo.InvariantCulture);
            }

            _metricDatumEventMessageParser.Parse();

            return(_metricDatumEventMessageParser.GetParsedData());
        }
        private void ParseProperties(PatternParser patternParser)
        {
            _parsedStreamName = string.IsNullOrEmpty(_streamName)
                ? null
                : patternParser.Parse(_streamName);

            _parsedGroupName = string.IsNullOrEmpty(_groupName)
                ? null
                : patternParser.Parse(_groupName);

            _parsedMessage = string.IsNullOrEmpty(_message)
                ? null
                : patternParser.Parse(_message);

            _dateTimeOffset = string.IsNullOrEmpty(_timestamp)
                ? null
                : (DateTime?)DateTime.Parse(patternParser.Parse(_timestamp));
        }
        private void ParseProperties(PatternParser patternParser)
        {
            _parsedDimensions = !_dimensions.Any()
                ? null
                : _dimensions
                                .Select(x => new Dimension {
                Name = x.Key, Value = patternParser.Parse(x.Value.Value)
            }).
                                ToDictionary(x => x.Name, y => y);

            _parsedNamespace = string.IsNullOrEmpty(_namespace)
                ? null
                : patternParser.Parse(_namespace);

            _parsedMetricName = string.IsNullOrEmpty(_metricName)
                ? null
                : patternParser.Parse(_metricName);

            _dateTimeOffset = string.IsNullOrEmpty(_timestamp)
                ? null
                : (DateTimeOffset?)DateTimeOffset.Parse(patternParser.Parse(_timestamp));
        }