// Copyright Epic Games, Inc. All Rights Reserved. using System.Reflection; using System.Text.RegularExpressions; using EpicGames.Core; using Microsoft.Extensions.Logging; namespace JobDriver.Parser { /// /// Turns raw text output into structured logging events /// public class LogParser : LogEventParser { /// /// Constructor /// /// The logger to receive parsed output messages /// List of patterns to ignore /// Additional sinks to receive log events public LogParser(ILogger logger, List ignorePatterns, List? logEventSinks = null) : base(logger, logEventSinks) { foreach (string ignorePattern in ignorePatterns) { IgnorePatterns.Add(new Regex(ignorePattern, RegexOptions.Compiled)); } AddMatchersFromAssembly(Assembly.GetExecutingAssembly()); } /// /// Static constructor /// static LogParser() { System.Text.RegularExpressions.Regex.CacheSize = 1000; } } }