¿ReaderWriterLockSlim es la elección correcta?

Estoy escribiendo un controlador / registrador de errores global para aplicaciones que se ejecutan en Windows Azure. Cuando se produce un error en la aplicación, se realizan varias operaciones que deben ocurrir atómicamente. Necesito evitar que se registre un error hasta que se complete el anterior. Mientras tanto, quiero que se realicen lecturas de los registros según sea necesario.

Mi pensamiento inicial fue usar un monitor / bloqueo y bloquear solo las escrituras de error. De esa manera, las lecturas no se inhiben en absoluto. Sin embargo, me preguntaba si un ReaderWriterLockSlim sería más apropiado. No puedo decir queverdaderament Comprenda el valor entre un enfoque y el otro.

¿Debo crear un ReaderWriterLockSlim y hacer algo como lo siguiente a continuación (con las lecturas envueltas en EnterReadLock) ...

public static void LogError(Exception exception)
{
    _lock.EnterWriteLock();

    ...

    _lock.ExitWriteLock();
}

O simplemente hago algo como lo siguiente, solo bloqueando las secciones de escritura:

public static void LogError(Exception exception)
{
     lock (someStaticLock)
     {
        ...
     }
}

ualquier comentario / consejo sería muy apreciado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta