예제 #1
0
        public void Test_log4net_InsertOnStartReplaceOnEnd()
        {
            Audit.Core.Configuration.Setup()
            .UseLog4net(_ => _
                        .LogLevel(LogLevel.Info));

            _adapter.Clear();

            using (var s = new AuditScopeFactory().Create(new AuditScopeOptions()
            {
                CreationPolicy = EventCreationPolicy.InsertOnStartReplaceOnEnd,
                EventType = "Test_log4net_InsertOnStartReplaceOnEnd"
            }))
            {
            }

            var events = _adapter.PopAllEvents();

            Assert.AreEqual(2, events.Length);
            Assert.AreEqual("Test_log4net_InsertOnStartReplaceOnEnd", JsonAdapter.Deserialize <AuditEvent>(events[0].MessageObject.ToString()).EventType);
            Assert.AreEqual("Test_log4net_InsertOnStartReplaceOnEnd", JsonAdapter.Deserialize <AuditEvent>(events[1].MessageObject.ToString()).EventType);
            var jsonAdapter = new JsonAdapter();

            Assert.AreEqual(jsonAdapter.Deserialize <AuditEvent>(events[0].MessageObject.ToString()).CustomFields["EventId"].ToString(), jsonAdapter.Deserialize <AuditEvent>(events[1].MessageObject.ToString()).CustomFields["EventId"].ToString());
        }
예제 #2
0
        void DisposeLogger()
        {
            // remove appender and drain events
            repository.Root.RemoveAppender(memoryAppender);
            memoryAppender.Clear();

            //mark repository as configured and notify that is has changed.
            repository.Configured = true;
            repository.RaiseConfigurationChanged(EventArgs.Empty);
        }
예제 #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // gather log4net output with small hack to get results...
        ILoggerRepository repository = LogManager.GetRepository();

        IAppender[]    appenders = repository.GetAppenders();
        MemoryAppender appender  = null;

        foreach (IAppender a in appenders)
        {
            if (a is MemoryAppender)
            {
                // we found our appender to look results from
                appender = a as MemoryAppender;
                break;
            }
        }

        if (appender != null)
        {
            appender.Clear();
            fulfillmentService.ProcessCustomer(customerEditController.CurrentCustomer.Id);
            LoggingEvent[] events       = appender.GetEvents();
            StringWriter   stringWriter = new StringWriter();
            PatternLayout  layout       = new PatternLayout("%date{HH:mm:ss} %-5level %logger{1}: %message<br />");
            foreach (LoggingEvent loggingEvent in events)
            {
                layout.Format(stringWriter, loggingEvent);
            }

            results.Text = stringWriter.ToString();
        }
    }
        public void TearDown()
        {
            _memoryAppender.Clear();
            LogManager.ResetConfiguration();

            Assert.That(LogManager.GetLogger(typeof(FilteringAssemblyLoader)).IsDebugEnabled, Is.False);
        }
예제 #5
0
        /// <summary>
        /// Handles when the <see cref="ScreenManager"/> updates.
        /// </summary>
        /// <param name="screenManager">The screen manager.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        void ScreenManager_Updated(IScreenManager screenManager, EventArgs e)
        {
            // The logger we use to grab log messages and output to the console will continue to queue messages
            // indefinitely until it is cleared. Because of this, we can't just flush the log by overriding
            // the screen's Update method. Instead, we have this event hook for when the ScreenManager
            // updates so we can clear out the log buffer every tick.

            // Get the latest events
            LoggingEvent[] events;
            try
            {
                events = _logger.GetEvents();
            }
            catch (ArgumentException)
            {
                // There is some bug in the _logger.GetEvents() that can throw this exception...
                return;
            }

            _logger.Clear();

            // Ensure there are events
            if (events != null && events.Length > 0)
            {
                foreach (var ev in events)
                {
                    var styledText = new StyledText(ev.RenderedMessage, ev.Level.GetColor());
                    _txtOutput.AppendLine(styledText);
                }
            }

            // Move to the last line in the log textbox
            _txtOutput.LineBufferOffset = Math.Max(0, _txtOutput.LineCount - _txtOutput.MaxVisibleLines);
        }
예제 #6
0
        public SamplesForm()
        {
            InitializeComponent();
            _buttonStorageScuVerify.Text = STR_Verify;

            if (String.IsNullOrEmpty(Properties.Settings.Default.ScpStorageFolder))
            {
                Properties.Settings.Default.ScpStorageFolder = Path.Combine(Path.GetTempPath(), "DicomImages");
            }

            _destinationSyntaxCombo.Items.Clear();
            _destinationSyntaxCombo.Items.Add(TransferSyntax.ExplicitVrLittleEndian);
            foreach (TransferSyntax syntax in DicomCodecRegistry.GetCodecTransferSyntaxes())
            {
                _destinationSyntaxCombo.Items.Add(syntax);
            }

            ComboBoxQueryScuQueryTypeSelectedIndexChanged(null, null);
            ComboBoxMoveScuQueryTypeSelectedIndexChanged(null, null);

            // Logging stuff
            Closing += SamplesFormClosing;
            BasicConfigurator.Configure(_appender);
            _timer = new Timer(delegate
            {
                try
                {
                    LoggingEvent[] events = _appender.GetEvents();
                    if (events != null && events.Length > 0)
                    {
                        // if there are events, we clear them from the logger,
                        // since we're done with them
                        _appender.Clear();
                        foreach (LoggingEvent ev in events)
                        {
                            // the line we want to log
                            string line = String.Format("({0}) {1} {2} [{3}]: {4}\r\n",
                                                        ev.ThreadName,
                                                        ev.TimeStamp.ToShortDateString(),
                                                        ev.TimeStamp.ToLongTimeString(), ev.Level,
                                                        ev.RenderedMessage);

                            AppendText(line);

                            if (ev.ExceptionObject != null)
                            {
                                AppendText(string.Format("{0}: {1}\r\n", ev.ExceptionObject, ev.ExceptionObject.Message));
                                AppendText("Stack Trace:\r\n" + ev.ExceptionObject.StackTrace + "\r\n");
                            }
                        }
                    }
                }
                catch (Exception x)
                {
                    Platform.Log(LogLevel.Error, x, "Unexpected exception with logging event");
                }
            }, null, 500);
            _timer.Start();
        }
예제 #7
0
        private void Init()
        {
            ILoggerFactory iLog = new Log4NetLoggerFactory();

            LoggerFactory.BindFactory(iLog);
            IAppender[] iAppenders = LogManager.GetRepository().GetAppenders();
            appender = iAppenders[0] as MemoryAppender;
            appender.Clear();
        }
        public override void TearDown()
        {
            _memoryAppender.Clear();
            LogManager.ResetConfiguration();

            Assert.That(LogManager.GetLogger(typeof(LoggingClientTransactionListener)).IsDebugEnabled, Is.False);

            base.TearDown();
        }
예제 #9
0
 /// <summary>
 /// Fills the text writer.
 /// </summary>
 /// <param name="sw">
 /// The sw.
 /// </param>
 /// <remarks>
 /// </remarks>
 private void FillTextWriter(TextWriter sw)
 {
     if (ma != null)
     {
         var events  = ma.GetEvents();
         var iLayout = (PatternLayout)ma.Layout;
         iLayout.Format(sw, events[events.GetUpperBound(0)]);
         ma.Clear();
     }
 }
예제 #10
0
        private async void button5_Click(object sender, EventArgs e)
        {
            Cursor.Current  = Cursors.WaitCursor;
            button5.Enabled = false;

            Hierarchy      hierarchy = LogManager.GetRepository() as Hierarchy;
            MemoryAppender mappender = hierarchy.Root.GetAppender("MemoryAppender") as MemoryAppender;

            try
            {
                var dL = checkBox1.Checked ? symbols.GetDeviceLists() : db.GetDeviceLists();
                if (dL == null)
                {
                    MessageBox.Show("Nepodařilo se získat seznam zařízení. Generování zastaveno.", "Upozornění", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                mappender.Clear();


                if (!RefreshDatablock(SelectedDb))
                {
                    if (MessageBox.Show($"Chyba při provádění refreshe databloků z projektu. Pokračovat s offline daty?", "Dotaz", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                    {
                        return;
                    }
                }

                await PointGeneratorCimplicity.Run(SelectedDb, definitions, pointStructures, dL);
            }
            catch (AggregateException ex)
            {
                MessageBox.Show(string.Join("\n", ex.InnerExceptions.Select(x => x.Message)), "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Join("\n", ex.Message), "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                button5.Enabled = true;
                Cursor.Current  = Cursors.Default;
            }

            var ev = mappender.PopAllEvents();

            if (ev != null && ev.Length > 0)
            {
                if (MessageBox.Show("Během generování se vyskytly chyby. Chceš je zobrazit?", "Upozornění", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    var dlg = new LogFrm(ev.OrderBy(x => x.Properties["datablock"]).Select(x => x.RenderedMessage).ToArray());
                    dlg.Show(this);
                }
            }
        }
예제 #11
0
 public void DetatchMemoryLogger(string name)
 {
     try
     {
         MemoryAppender appender = GetMemoryAppender(name);
         LoggingHierarchy.Root.RemoveAppender(appender);
         appender.Clear();
     }
     catch (Exception)
     {
         // Ignore
     }
 }
        public void TearDown()
        {
            if (ShowLogOutput)
            {
                var logEvents = MemoryAppender.GetEvents().Reverse().ToArray();
                Console.WriteLine(logEvents.Skip(1).First().RenderedMessage);
                Console.WriteLine(logEvents.First().RenderedMessage);
            }

            MemoryAppender.Clear();
            LogManager.ResetConfiguration();

            Assert.That(LogManager.GetLogger(typeof(DiagnosticOutputRuleMergeDecorator)).IsDebugEnabled, Is.False);
            _serviceLocatorScope.Dispose();
        }
예제 #13
0
        public LogEventList GetPendingLoggingEvents()
        {
            LogEventList list = new LogEventList();

            if (appender != null)
            {
                LoggingEvent[] result = appender.GetEvents();
                foreach (LoggingEvent evt in result)
                {
                    list.Add(new LogEvent(evt));
                }
                appender.Clear();
            }
            return(list);
        }
        public void TestInitialize()
        {
            // The test assembly has no notion of the default AnalysisPrograms.exe binary location.
            // We have to mock it.
            ConfigFile.ConfigFolder =
                Path.GetFullPath(
                    Path.Combine(
                        Assembly.GetExecutingAssembly().Location,
                        "../ConfigFiles"));

            // clear the log
            memoryAppender.Clear();

            // flush the cache (important to reset state between tests)
            ConfigFile.FlushCache();
        }
예제 #15
0
 public static IEnumerable <LoggingEvent> NextLoggingEvent()
 {
     while (true)
     {
         Queue <LoggingEvent> events = new Queue <LoggingEvent>(appender.GetEvents().ToList());
         if (events != null && events.Count > 0)
         {
             appender.Clear();
             while (events.Count > 0)
             {
                 yield return(events.Dequeue());
             }
         }
         else
         {
             Thread.Sleep(300);
             yield return(null);
         }
     }
 }
예제 #16
0
        private void LogerWatch()
        {
            while (logWatching)
            {
                LoggingEvent[] events = appender.GetEvents();
                if (events != null && events.Length > 0)
                {
                    // if there are events, we clear them from the logger,

                    // since we're done with them
                    appender.Clear();
                    foreach (LoggingEvent ev in events)
                    {
                        //string line = ev.LoggerName + ": " + ev.RenderedMessage + "\r\n";
                        string line = ev.RenderedMessage + "\r\n";
                        AppendLog(line);
                    }
                }

                Thread.Sleep(500);
            }
        }
예제 #17
0
        private static ReadMeTranslationEntry GetTranslationEntry(MemoryAppender appender, MethodBase methodInfo,
                                                                  Type type)
        {
            var tAttr = methodInfo.GetCustomAttribute <TranslationReadMeAttribute>();

            if (tAttr == null)
            {
                return(null);
            }

            var test = Activator.CreateInstance(type);

            methodInfo.Invoke(test, new object[0]);

            var record = appender.GetEvents()
                         .Select(e => e.MessageObject)
                         .OfType <Tuple <Expression, string> >()
                         .Single();

            appender.Clear();

            var expression = record.Item1;
            var sql        = record.Item2;

            var expStr = expression.ToReadableString();

            expStr = QueryableNameRegex.Replace(expStr, @"db.$1s");
            expStr = SingleLineCommentsRegex.Replace(expStr, "");

            return(new ReadMeTranslationEntry
            {
                TranslationAttr = tAttr,
                ExpressionString = expStr,
                Sql = sql
            });
        }
예제 #18
0
        /// <summary>
        /// Handles the Tick event of the tmrUpdateDisplay control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="eArgs">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        void tmrUpdateDisplay_Tick(object sender, EventArgs eArgs)
        {
            ++_interfaceUpdateTicker;

            // Get the latest events
            LoggingEvent[] events;
            try
            {
                events = _logger.GetEvents();
            }
            catch (ArgumentException)
            {
                // There is some bug in the _logger.GetEvents() that can throw this exception...
                return;
            }

            _logger.Clear();

            // Ensure there are events
            if (events != null && events.Length > 0)
            {
                _logBuffer.AddRange(events);

                if (_logBuffer.Count > _logBufferSize)
                {
                    _logBuffer.RemoveRange(0, _logBuffer.Count - _logBufferSize + _logBufferRemoveExtra);
                }

                events = GetFilteredEvents(events);

                if (events != null && events.Length > 0)
                {
                    lstLog.SuspendLayout();
                    lstLog.Enabled = false;
                    try
                    {
                        // Add the events
                        lstLog.Items.AddRange(events.Cast <object>().ToArray());

                        // If too long, truncate
                        while (lstLog.Items.Count > _maxLogDisplayLines)
                        {
                            lstLog.Items.RemoveAt(0);
                        }

                        // Scroll down to see the latest item if nothing is selected
                        if (lstLog.SelectedIndex < 0)
                        {
                            lstLog.SelectedIndex = lstLog.Items.Count - 1;
                            lstLog.ClearSelected();

                            // Auto-scroll
                            var numItems = lstLog.ClientSize.Height / lstLog.ItemHeight;
                            lstLog.TopIndex = Math.Max(0, lstLog.Items.Count - numItems + 1);
                        }
                        else
                        {
                            lstLog.TopIndex = lstLog.SelectedIndex;
                        }
                    }
                    finally
                    {
                        lstLog.Enabled = true;
                        lstLog.ResumeLayout();
                    }
                }
            }

            // Update the CPU and memory usage values
            if (_interfaceUpdateTicker % 8 == 0)
            {
                // Bandwidth
                if (_server != null && _server.ServerSockets != null)
                {
                    try
                    {
                        var totalBytes     = _server.ServerSockets.Statistics.ReceivedBytes + _server.ServerSockets.Statistics.SentBytes;
                        var totalMegabytes = totalBytes / 1000f / 1000f;
                        lblBandwidth.Text = string.Format("{0:0.##} MB", totalMegabytes);
                    }
                    catch
                    {
                        lblBandwidth.Text = "ERROR";
                    }
                }
                else
                {
                    lblBandwidth.Text = "";
                }

                // User count
                if (_server != null)
                {
                    try
                    {
                        lblUserCount.Text = _server.World.GetUsers().Count().ToString();
                    }
                    catch
                    {
                        lblUserCount.Text = "ERROR";
                    }
                }
                else
                {
                    lblUserCount.Text = "0";
                }

                // CPU
                if (_cpuCounter != null)
                {
                    try
                    {
                        lblCPU.Text = Math.Round(_cpuCounter.NextValue()) + "%";
                    }
                    catch
                    {
                        lblCPU.Text = "ERROR";
                    }
                }
                else
                {
                    lblCPU.Text = "?";
                }

                // Memory used
                try
                {
                    lblRAMUsed.Text = SystemPerformance.Memory.ProcessUsageMB + " MB";
                }
                catch
                {
                    lblRAMUsed.Text = "ERROR";
                }

                // Memory free
                try
                {
                    lblRAMFree.Text = SystemPerformance.Memory.AvailableMB + " MB";
                }
                catch
                {
                    lblRAMFree.Text = "ERROR";
                }
            }
        }
예제 #19
0
 public void Setup()
 {
     _log4NetMemoryLog.Clear();
 }
예제 #20
0
 public void ClearEvents()
 {
     _memAppender.Clear();
 }
예제 #21
0
 protected void ClearLogEvents()
 {
     _loggedEvents.Clear();
 }
예제 #22
0
        /// <summary>
        /// Handles the Tick event of the tmrUpdateDisplay control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="eArgs">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        void tmrUpdateDisplay_Tick(object sender, EventArgs eArgs)
        {
            ++_interfaceUpdateTicker;

            // Get the latest events
            LoggingEvent[] events;
            try
            {
                events = _logger.GetEvents();
            }
            catch (ArgumentException)
            {
                // There is some bug in the _logger.GetEvents() that can throw this exception...
                return;
            }

            _logger.Clear();

            // Ensure there are events
            if (events != null && events.Length > 0)
            {
                _logBuffer.AddRange(events);

                if (_logBuffer.Count > _logBufferSize)
                {
                    _logBuffer.RemoveRange(0, _logBuffer.Count - _logBufferSize + _logBufferRemoveExtra);
                }

                events = GetFilteredEvents(events);

                if (events != null && events.Length > 0)
                {
                    lstLog.SuspendLayout();
                    lstLog.Enabled = false;
                    try
                    {
                        // Add the events
                        lstLog.Items.AddRange(events);

                        // If too long, truncate
                        while (lstLog.Items.Count > _maxLogDisplayLines)
                        {
                            lstLog.Items.RemoveAt(0);
                        }

                        // Scroll down to see the latest item if nothing is selected
                        if (lstLog.SelectedIndex < 0)
                        {
                            lstLog.SelectedIndex = lstLog.Items.Count - 1;
                            lstLog.ClearSelected();

                            // Auto-scroll
                            var numItems = lstLog.ClientSize.Height / lstLog.ItemHeight;
                            lstLog.TopIndex = Math.Max(0, lstLog.Items.Count - numItems + 1);
                        }
                        else
                        {
                            lstLog.TopIndex = lstLog.SelectedIndex;
                        }
                    }
                    finally
                    {
                        lstLog.Enabled = true;
                        lstLog.ResumeLayout();
                    }
                }
            }

            // Update the CPU and memory usage values
            if (_interfaceUpdateTicker % 4 == 0)
            {
                lblCPU.Text     = Math.Round(_cpuCounter.NextValue()) + "%";
                lblRAMUsed.Text = SystemPerformance.Memory.ProcessUsageMB + " MB";
                lblRAMFree.Text = SystemPerformance.Memory.AvailableMB + " MB";
            }
        }
예제 #23
0
 public void Dispose()
 {
     _appender.Clear();
 }