Sometimes your logger throws an exception while logging an exception. At least it does if you have luck swings like mine from time to time.
Here's how I deal with it.
//some logging code that can throw an exception
//but the exception has to be handled and logged
catch (Exception e)
//write exception to OS event log
EventLog.WriteEntry("MyAppName", "Log Exception: " + e.Message);
It's not perfect, but it seems to work in most cases.
This code comes in handy especially in Windows Services where in the .NET Framework 2.0 and up (as near as I can tell), an unhandled exception will result in your service being stopped with little or no evidence as to why.