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); }
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); }