private AnankeSettings(TimeSpan maximumRuntime, ILoggerFactory loggerFactory, TimeSpan exitTimeout, double randomMaximumRuntimeRelativeDelta, StdoutParser stdoutParser, IStringLog consoleLog, IExitProcessService exitProcessService, ISignalService signalService) { MaximumRuntime = maximumRuntime; LoggerFactory = loggerFactory; ExitTimeout = exitTimeout; RandomMaximumRuntimeRelativeDelta = randomMaximumRuntimeRelativeDelta; StdoutParser = stdoutParser; ConsoleLog = consoleLog; ExitProcessService = exitProcessService; SignalService = signalService; }
internal static AnankeSettings InternalCreate(TimeSpan?maximumRuntime = null, ILoggerFactory loggerFactory = null, LoggerIsEnabledFilter loggerIsEnabledFilter = null, LoggerFormatter loggerFormatter = null, TimeSpan?exitTimeout = null, double?randomMaximumRuntimeRelativeDelta = null, StdoutParser stdoutParser = null, IStringLog consoleLog = null, IExitProcessService exitProcessService = null, ISignalService signalService = null) { if (signalService == null) { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { signalService = new WindowsSignalService(); } else { signalService = new UnixSignalService(); } } consoleLog = consoleLog ?? new TextWriterStringLog(Console.Out); loggerFormatter = loggerFormatter ?? AnankeFormatters.FormattedText; loggerIsEnabledFilter = loggerIsEnabledFilter ?? ((_, __) => true); var loggerProvider = new AnankeLoggerProvider(consoleLog, loggerFormatter, loggerIsEnabledFilter); if (loggerFactory == null) { loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(loggerProvider); } return(new AnankeSettings(maximumRuntime ?? Timeout.InfiniteTimeSpan, loggerFactory, exitTimeout ?? TimeSpan.FromSeconds(10), randomMaximumRuntimeRelativeDelta ?? 0.10, stdoutParser ?? ((message, provider) => provider.CreateLogger("App").LogInformation(message)), consoleLog, exitProcessService ?? new ExitProcessService(), signalService)); }