c # escribiendo al visor de eventos

Estoy tratando de escribir al visor de eventos en mi código c #, pero recibo el maravilloso mensaje "Referencia de objeto no configurada en una instancia de un objeto". Apreciaría algo de ayuda con este código, ya sea lo que está mal o incluso una mejor manera de hacerlo. Esto es lo que tengo para escribir en el registro de eventos:

private void WriteToEventLog(string message)
{
    string cs = "QualityDocHandler";
    EventLog elog = new EventLog();
    if (!EventLog.SourceExists(cs))
    {
        EventLog.CreateEventSource(cs, cs);
    }
    elog.Source = cs;
    elog.EnableRaisingEvents = true;
    elog.WriteEntry(message);
}

Y aquí es donde estoy tratando de llamarlo:

private readonly Random _rng = new Random();
private const string _chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private string RandomString(int size)
{
    try
    {
        char[] buffer = new char[size];
        for (int i = 0; i < size; i++)
        {
            buffer[i] = _chars[_rng.Next(_chars.Length)];
        }
        return new string(buffer);
    }
    catch (Exception e)
    {
        WriteToEventLog(e.ToString());
        return null;
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta