I am trying to get the numerical code from the EventLogEntryType
enum type. I have a generic log method that will take this in addition to the message and write a windows event log before calling my database to log it there as well. Before I send the log level to the database, I am attempting to retrieve the numerical code for the log level so that I can sort these messages in the table by severity.
Unfortunately this has proven much more difficult than I had hoped. The following is my generic log method:
public static void MyGenericLogMessageMethod(string message, EventLogEntryType logLevel)
{
// Overwriting values for illustrative purposes
logLevel = EventLogEntryType.Warning;
int logLevelCode = (int)logLevel.GetTypeCode();
string testMessage = "Converted logLevel to logLevelCode [" + logLevelCode.ToString() + "]";
eventLog.WriteEntry(testMessage, logLevel);
//dssDatabaseDAO.LogMessage(message, logLevelCode);
}
And the output is, strangely enough:
Converted logLevel to logLevelCode [9]
If you take a look at the EventLogEntryType
enum class, the value for Warning is 2, not 9:
namespace System.Diagnostics
{
//
// Summary:
// Specifies the event type of an event log entry.
public enum EventLogEntryType
{
//
// Summary:
// An error event. This indicates a significant problem the user should know about;
// usually a loss of functionality or data.
Error = 1,
//
// Summary:
// A warning event. This indicates a problem that is not immediately significant,
// but that may signify conditions that could cause future problems.
Warning = 2,
//
// Summary:
// An information event. This indicates a significant, successful operation.
Information = 4,
//
// Summary:
// A success audit event. This indicates a security event that occurs when an audited
// access attempt is successful; for example, logging on successfully.
SuccessAudit = 8,
//
// Summary:
// A failure audit event. This indicates a security event that occurs when an audited
// access attempt fails; for example, a failed attempt to open a file.
FailureAudit = 16
}
}
Now, I could go into a diatribe about how much easier and straightforward this would be in Java but I won't because I know I'd be wrong. That is, there has to be a better or more correct way of retrieving the code values that I am not aware of. I've looked over the documentation but I'm either missing the relevant portion or not understanding something.
Can someone please point me in the right direction?
Thank you!