Пример #1
0
        public LineProcessingResult Replace(string input)
        {
            var result = new LineProcessingResult {
                NewLine = input
            };

            var match = digitLogPattern.Match(input);
            var log   = match.Groups["log"].Value;
            var args  = match.Groups["args"].Value;

            var stringArgs = argsPattern.Matches(args).Cast <Match>().Select(x => argumentProcessor.Get(x.Value)).ToArray();

            var replaced = input;

            foreach (Match m in digitPattern.Matches(log))
            {
                var digit = m.Groups["digit"].Value;
                var index = int.Parse(digit);
                var word  = stringArgs[index];
                replaced = replaced.Replace(m.Value, $"{{{word}}}");
            }
            result.Replaced = true;
            result.NewLine  = replaced;

            return(result);
        }
Пример #2
0
        public LineProcessingResult Replace(string input)
        {
            var result = new LineProcessingResult {
                NewLine = input
            };

            var match  = digitLogPattern.Match(input);
            var logger = match.Groups["logger"].Value;
            var log    = match.Groups["message"].Value;

            var paramsLine = string.Join(", ", argsPattern.Matches(log).Cast <Match>().Select(x => x.Groups["arg"].Value).GroupBy(x => x).Select(x => x.Key));

            var newMessage = argsPattern.Replace(log, m => $"{{{argumentProcessor.Get(m.Groups["arg"].Value)}}}");

            result.NewLine  = $"{logger}{(logger.EndsWith("Format") ? "" : "Format")}(\"{newMessage}\", {paramsLine});";
            result.Replaced = true;

            return(result);
        }