コード例 #1
0
        internal AnankeSettings(IStringLog consoleLog, Func <string, LogLevel, bool> loggerIsEnabledFilter, Func <LogEvent, string> loggerFormatter)
        {
            var loggerFactory = new LoggerFactory();

            consoleLog            = consoleLog ?? new TextWriterStringLog(Console.Out);
            loggerFormatter       = loggerFormatter ?? AnankeFormatters.FormattedText;
            loggerIsEnabledFilter = loggerIsEnabledFilter ?? ((_, __) => true);
            var loggerProvider = new AnankeLoggerProvider(consoleLog, loggerFormatter, loggerIsEnabledFilter);

            loggerFactory.AddProvider(loggerProvider);
            LoggerFactory = loggerFactory;

            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                SignalService = new WindowsSignalService();
            }
            else
            {
                SignalService = new UnixSignalService();
            }
        }
コード例 #2
0
        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));
        }