Qual é a melhor abordagem para o log? [fechadas]

Meu aplicativo (local, windows / mono) registra eventos importantes em um arquivo de texto. No caso de uma falha repentina / falha / saída forçada, nenhum dado deve permanecer não gravado (na medida do possível). Portanto, atualmente eu uso uma abordagem simples de anexar ao arquivo de texto:

Public Shared Sub LogAppEvent(ByVal EventData As String)
    Dim Config As ConfigHandler = ConfigHandler.GetSingleton()
    Dim AppLog As New IO.StreamWriter(Config.GetUserFilesRootDir() & ConfigOptions.AppLogName, True)
    AppLog.WriteLine(String.Format("[{0}] {1}", Date.Now.ToString(), EventData))
    AppLog.Close()
End Sub

Isso é altamente subótimo, mas os eventos de log são bem raros. Você recomendaria mudar para oSystem.Diagnostics classe de log?

Ou talvez você sugerisse outra solução?

questionAnswers(5)

yourAnswerToTheQuestion