I\'m trying to write to the event viewer in my c# code, but I\'m getting the wonderful \"Object reference not set to an instance of an object\" message. I\'d appreciate som
Here's how I implemented Event logging. I created a generic ILogger interface so I can swap in different logging mechanisms:
interface ILogger
{
void Debug(string text);
void Warn(string text);
void Error(string text);
void Error(string text, Exception ex);
}
My implementation class is very simple:
class EventLogger : ILogger
{
public void Debug(string text)
{
EventLog.WriteEntry("MyAppName", text, EventLogEntryType.Information);
}
public void Warn(string text)
{
EventLog.WriteEntry("MyAppName", text, EventLogEntryType.Warning);
}
public void Error(string text)
{
EventLog.WriteEntry("MyAppName", text, EventLogEntryType.Error);
}
public void Error(string text, Exception ex)
{
Error(text);
Error(ex.StackTrace);
}
}
Note that I do not instantiate EventLog. To use my logger class I just have the following reference (you could have this returned by a static factory method):
private static readonly ILogger log = new EventLogger();
And the actual usage is like this:
try
{
// business logic
}
catch (Exception ex)
{
log.Error("Exception in MyMethodName()", ex);
}