public void Configed_MemoryBufferDestination()
        {
            var conf = LaconicConfiguration.CreateFromString(CONF_SRC1);
            using( var app = new ServiceBaseApplication(null, conf.Root))
            {
                var mbd = ((LogService)app.Log).Destinations.First() as MemoryBufferDestination;

                System.Threading.Thread.Sleep( 3000 );
                mbd.ClearBuffer();

                app.WriteLog(Log.MessageType.Info, "test", "Hello1");
                System.Threading.Thread.Sleep( 1000 );
                app.WriteLog(Log.MessageType.Info, "test", "Hello2");

                System.Threading.Thread.Sleep( 3000 );

                Assert.AreEqual(2, mbd.Buffered.Count());

                Assert.AreEqual("Hello1", mbd.BufferedTimeAscending.First().Text);
                Assert.AreEqual("Hello2", mbd.BufferedTimeAscending.Last().Text);

                Assert.AreEqual("Hello2", mbd.BufferedTimeDescending.First().Text);
                Assert.AreEqual("Hello1", mbd.BufferedTimeDescending.Last().Text);
            }
        }
        public void Configed_MemoryBufferDestinationCapacity()
        {
            var conf = LaconicConfiguration.CreateFromString(CONF_SRC1);
            using( var app = new ServiceBaseApplication(null, conf.Root))
            {
                var mbd = ((LogService)app.Log).Destinations.First() as MemoryBufferDestination;

                System.Threading.Thread.Sleep( 3000 );
                mbd.BufferSize = 10;

                for(int i=0; i<100; i++)
                    app.WriteLog(Log.MessageType.Info, "test", "i={0}".Args(i));
                System.Threading.Thread.Sleep( 3000 );

                Assert.AreEqual(10, mbd.Buffered.Count());

                Assert.AreEqual("i=99", mbd.BufferedTimeDescending.First().Text);
                Assert.AreEqual("i=90", mbd.BufferedTimeDescending.Last().Text);
            }
        }