12 private readonly
string alertMessage;
13 private readonly
string alertRecinded;
14 private readonly
string emergencyMessage;
15 private readonly
string emergencyRecinded;
16 private readonly
double alertLevel;
17 private readonly
int alertConsecutive;
18 private readonly
double emergencyLevel;
19 private readonly
int emergencyConsecutive;
20 private readonly
int sign;
21 private int state = 0;
22 private int nrAboveAlertLevel = 0;
23 private int nrAboveEmergencyLevel = 0;
24 private int nrBelowAlertLevel = 0;
25 private int nrBelowEmergencyLevel = 0;
40 double EmergencyLevel,
int EmergencyConsecutive,
string AlertMessage,
43 this.sign = Math.Sign(EmergencyLevel - AlertLevel);
45 if (AlertConsecutive <= 0)
46 throw new ArgumentOutOfRangeException(nameof(AlertConsecutive),
"Value must be positive.");
48 if (EmergencyConsecutive <= 0)
49 throw new ArgumentOutOfRangeException(nameof(EmergencyConsecutive),
"Value must be positive.");
51 this.alertLevel = AlertLevel;
52 this.alertConsecutive = AlertConsecutive;
53 this.alertMessage = AlertMessage;
55 this.emergencyLevel = EmergencyLevel;
56 this.emergencyConsecutive = EmergencyConsecutive;
57 this.emergencyMessage = EmergencyMessage;
82 if ((Value - this.emergencyLevel) * this.sign >= 0)
84 this.nrBelowEmergencyLevel = 0;
85 this.nrBelowAlertLevel = 0;
89 this.nrAboveEmergencyLevel++;
90 this.nrAboveAlertLevel++;
92 if (this.nrAboveEmergencyLevel >= this.emergencyConsecutive)
97 this.
Emergency.Raise(
this, EventArgs.Empty);
103 this.nrAboveEmergencyLevel = 0;
107 this.nrBelowEmergencyLevel++;
108 if (this.nrBelowEmergencyLevel >= this.emergencyConsecutive)
114 if ((Value - this.alertLevel) * this.sign >= 0)
116 Log.
Alert(this.alertMessage +
"\r\n\r\n(" + this.emergencyRecinded +
")");
117 this.
Alert.Raise(
this, EventArgs.Empty);
124 if ((Value - this.alertLevel) * this.sign >= 0)
126 this.nrBelowAlertLevel = 0;
130 this.nrAboveAlertLevel++;
132 if (this.nrAboveAlertLevel >= this.alertConsecutive)
137 this.
Alert.Raise(
this, EventArgs.Empty);
143 this.nrAboveAlertLevel = 0;
147 this.nrBelowAlertLevel++;
148 if (this.nrBelowAlertLevel >= this.alertConsecutive)
Static class managing the application event log. Applications and services log events on this static ...
static void Emergency(string Message, string Object, string Actor, string EventId, EventLevel Level, string Facility, string Module, string StackTrace, params KeyValuePair< string, object >[] Tags)
Logs an emergency event.
static void Notice(string Message, string Object, string Actor, string EventId, EventLevel Level, string Facility, string Module, string StackTrace, params KeyValuePair< string, object >[] Tags)
Logs a notice event.
static void Alert(string Message, string Object, string Actor, string EventId, EventLevel Level, string Facility, string Module, string StackTrace, params KeyValuePair< string, object >[] Tags)
Logs an alert event.