/// <summary>
        /// Creates and returns a fully configured <see cref="ILogProvider"/> instance.
        /// </summary>
        /// <returns>A fully configured <see cref="ILogProvider"/> instance.</returns>
        public ILogProvider GetConfiguredInstance()
        {
            EventLogWrapper wrapper = cmbLogNames.SelectedItem as EventLogWrapper;

            if (wrapper != null)
            {
                string logName     = wrapper.EventLog.Log;
                string machineName = txtMachineName.Text.Trim();
                string sourceName  = txtSourceName.Text.Trim();

                if (ModifierKeys != Keys.Shift)
                {
                    Settings.Default.PnlEventLogSettingsLogName     = logName;
                    Settings.Default.PnlEventLogSettingsMachineName = machineName;
                    Settings.Default.PnlEventLogSettingsSourceName  = sourceName;

                    // Save the current settings as new default values.
                    Settings.Default.SaveSettings();
                }

                return(new EventlogReceiver(
                           logName
                           , machineName
                           , sourceName));
            }

            return(null);
        }
Example #2
0
        public override void Start()
        {
            foreach (int index in Enumerable.Range(0, 1000))
            {
                string drive = DiskWrapper.GetDriveOfApplication();

                float freePercent = DiskWrapper.GetFreeDiskSpacePercent(drive);

                EventLogWrapper.WriteEventLog("Potato", EventLogEntryType.Information);
            }
            base.Start();
        }
        private static void PerformanceWatching(int maxWaitTime, int poolingTime, string url)
        {
            double   dt;               //Текущее время ответа
            double   avtime;           //Среднее время ответа
            DateTime startRequestTime; //Время начала запроса

            while (true)
            {
                startRequestTime = DateTime.Now;
                try
                {
                    WebRequest request = WebRequest.Create(url);
                    request.Timeout = maxWaitTime;
                    request.GetResponse();
                }
                catch (WebException)
                {
                }
                catch (Exception e)
                {
                    using (var evlog = new EventLogWrapper())
                    {
                        evlog.WriteLog("An error was occured on aplication server starting", EventLogEntryType.Error, e);
                    }
                }
                finally
                {
                    dt = (DateTime.Now - startRequestTime).TotalMilliseconds;
                    commonQueueRequestTime += dt;
                    countOfQueueRequests++;
                    avtime = commonQueueRequestTime / countOfQueueRequests;

                    IsHighLoad = avtime > maxWaitTime || avtime > avtime * 2;

                    if (countOfQueueRequests > counterLimit) //Фактически, учитываем только counterLimit последних запросов
                    {
                        commonQueueRequestTime = avtime;
                        countOfQueueRequests   = 1;
                    }

                    Console.WriteLine($"time={(int)dt}, avr={(int)avtime}");

                    Thread.Sleep(poolingTime);
                }
            }
        }