When NET_4_0 or MONO_4_0 is defined, log4net uses a ReaderWriterLockSlim with LockRecursionPolicy.NoRecursion. As a result, any attempt to log recursively from within an Appender fail: a System.Threading.LockRecursionException is thrown and swallowed by the log4net Core.
Other versions use a ReaderWriterLock and allow recursion.
The following branch adds a unit test that shows this inconsistent behaviour. The test fails for NET_4_0 or MONO_4_0 and passes for other versions: