Пример #1
0
        public SimpleLatencyBenchmarkResult Bench(int warmingMessageCount, int totalMessageCount, int producingThreadCount)
        {
            var repository = log4net.LogManager.GetRepository(Assembly.GetExecutingAssembly());

            var layout = new PatternLayout("%-4timestamp [%thread] %-5level %logger %ndc - %message%newline");

            layout.ActivateOptions();
            var appender = new Log4NetTestAppender(false);

            appender.ActivateOptions();
            BasicConfigurator.Configure(repository, appender);

            var logger = log4net.LogManager.GetLogger(repository.Name, nameof(appender));
            var signal = appender.SetMessageCountTarget(totalMessageCount + warmingMessageCount);

            var produce = new Func <HistogramBase>(() =>
            {
                var warmingMessageByProducer = warmingMessageCount / producingThreadCount;
                int[] counter     = { 0 };
                var warmingResult = SimpleLatencyBenchmark.Bench(() => logger.InfoFormat("Hi {0} ! It's {1:HH:mm:ss}, and the message is #{2}", "dude", DateTime.UtcNow, counter[0]++), warmingMessageByProducer);

                var messageByProducer = totalMessageCount / producingThreadCount;
                counter[0]            = 0;
                return(SimpleLatencyBenchmark.Bench(() => logger.InfoFormat("Hi {0} ! It's {1:HH:mm:ss}, and the message is #{2}", "dude", DateTime.UtcNow, counter[0]++), messageByProducer));
            });

            return(SimpleLatencyBenchmark.RunBench(producingThreadCount, produce, signal));
        }
Пример #2
0
        public List <HistogramBase> Bench(int warmingMessageCount, int totalMessageCount, int producingThreadCount)
        {
            var layout = new PatternLayout("%-4timestamp [%thread] %-5level %logger %ndc - %message%newline");

            layout.ActivateOptions();
            var appender = new Log4NetTestAppender(false);

            appender.ActivateOptions();
            BasicConfigurator.Configure(appender);

            var logger = log4net.LogManager.GetLogger(nameof(appender));


            var signal = appender.SetMessageCountTarget(totalMessageCount + warmingMessageCount);

            var produce = new Func <HistogramBase>(() =>
            {
                var warmingMessageByProducer = warmingMessageCount / producingThreadCount;
                var warmingResult            = SimpleLatencyBenchmark.Bench(i => logger.InfoFormat("Hi {0} ! It's {1:HH:mm:ss}, and the message is #{2}", "dude", DateTime.UtcNow, i), warmingMessageByProducer);

                var messageByProducer = totalMessageCount / producingThreadCount;
                return(SimpleLatencyBenchmark.Bench(i => logger.InfoFormat("Hi {0} ! It's {1:HH:mm:ss}, and the message is #{2}", "dude", DateTime.UtcNow, i), messageByProducer));
            });

            var tasks = new List <Task <HistogramBase> >();

            for (var i = 0; i < producingThreadCount; i++)
            {
                tasks.Add(Task.Factory.StartNew(produce, TaskCreationOptions.LongRunning));
            }

            signal.Wait(TimeSpan.FromSeconds(30));

            return(tasks.Select(x => x.Result).ToList());
        }
Пример #3
0
        //
        // Log4Net
        //

        private void SetupLog4Net()
        {
            var layout = new PatternLayout("%-4timestamp [%thread] %-5level %logger %ndc - %message%newline");

            _log4NetTestAppender = new Log4NetTestAppender(false);
            layout.ActivateOptions();
            _log4NetTestAppender.ActivateOptions();

            log4net.Config.BasicConfigurator.Configure(_log4NetTestAppender);

            _log4NetLogger = log4net.LogManager.GetLogger(nameof(Log4Net));
        }
Пример #4
0
        //
        // Log4Net
        //

        private void SetupLog4Net()
        {
            var layout = new PatternLayout("%-4timestamp [%thread] %-5level %logger %ndc - %message%newline");

            _log4NetTestAppender = new Log4NetTestAppender(false);
            layout.ActivateOptions();
            _log4NetTestAppender.ActivateOptions();

            var repository = log4net.LogManager.GetRepository(Assembly.GetExecutingAssembly());

            log4net.Config.BasicConfigurator.Configure(repository, _log4NetTestAppender);

            _log4NetLogger = log4net.LogManager.GetLogger(repository.Name, nameof(Log4Net));
        }