Ejemplo n.º 1
0
        public List <HistogramBase> Bench(int queueSize, int warmingMessageCount, int totalMessageCount, int producingThreadCount)
        {
            var appender = new ZeroLog.Tests.TestAppender(false);

            BasicConfigurator.Configure(new[] { appender }, queueSize, logEventPoolExhaustionStrategy: LogEventPoolExhaustionStrategy.WaitForLogEvent);
            var logger = LogManager.GetLogger(nameof(ZeroLog));

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

            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));
            LogManager.Shutdown();

            return(tasks.Select(x => x.Result).ToList());
        }
Ejemplo n.º 2
0
        //
        // ZeroLog
        //

        private void SetupZeroLog()
        {
            _zeroLogTestAppender = new ZeroLog.Tests.TestAppender(false);

            BasicConfigurator.Configure(new[] { _zeroLogTestAppender }, QueueSize, logEventPoolExhaustionStrategy: LogEventPoolExhaustionStrategy.WaitForLogEvent);

            _zeroLogLogger = LogManager.GetLogger(nameof(ZeroLog));
        }