static LoadingAdjustedTimestamp()
{
Reset();
Log = Logger.CreatePublisher(typeof(LoadingAdjustedTimestamp), MessageClass.Component);
LogLoadingClock = Log.RegisterEvent(MessageLevel.Info, MessageFlags.SystemHealth, $"Loading Clock is behind", 0, MessageRate.EveryFewSeconds(1), 1);
LogSmall = Log.RegisterEvent(MessageLevel.Info, MessageFlags.SystemHealth, $"Short High Load Condition Detected", 0, MessageRate.EveryFewSeconds(10), 5);
LogMedium = Log.RegisterEvent(MessageLevel.Warning, MessageFlags.SystemHealth, $"Medium High Load Condition Detected", 0, MessageRate.EveryFewSeconds(10), 5);
LogLarge = Log.RegisterEvent(MessageLevel.Error, MessageFlags.SystemHealth, $"Long High Load Condition Detected", 0, MessageRate.EveryFewSeconds(10), 5);
LogLoadingClock.ShouldRaiseMessageSupressionNotifications = false;
LogSmall.ShouldRaiseMessageSupressionNotifications = false;
LogMedium.ShouldRaiseMessageSupressionNotifications = false;
LogLarge.ShouldRaiseMessageSupressionNotifications = false;
MonitorHighThread = new Thread(MonitorHighPriority, short.MaxValue);
MonitorHighThread.Priority = ThreadPriority.Highest;
MonitorHighThread.IsBackground = true;
MonitorHighThread.Start();
MonitorNormalThread = new Thread(MonitorNormalPriority, short.MaxValue);
MonitorNormalThread.Priority = ThreadPriority.Normal;
MonitorNormalThread.IsBackground = true;
MonitorNormalThread.Start();
MonitorLowThread = new Thread(MonitorLowPriority, short.MaxValue);
MonitorLowThread.Priority = ThreadPriority.Lowest;
MonitorLowThread.IsBackground = true;
MonitorLowThread.Start();
}