Встроенная трассировка в System.Diagnostics прекрасно работает в .NET Framework, и я использую ее во многих приложениях. Однако одна из основных причин, по которой я все еще использую log4net, заключается в том, что во встроенной трассировке .NET Framework отсутствуют многие полезные полнофункциональные приложения, которые уже встроены в log4net.
Например, в .NET Framework не существует хорошего прослушивателя трассировки подвижного файла, кроме того, что в dll VB.NET, который на самом деле не настолько полнофункциональный.
В зависимости от вашей среды разработки, я бы порекомендовал использовать log4net, если сторонние инструменты недоступны, тогда я бы сказал, использовать классы трассировки System.Diagnostics. Если вам действительно нужен лучший appender / tracelistener, вы всегда можете реализовать его самостоятельно.
Например, многие наши клиенты требуют, чтобы мы не использовали библиотеки с открытым исходным кодом при установке на своих корпоративных компьютерах, поэтому в этом случае классы трассировки .NET Framework идеально подходят.
Дополнительно - http://www.postsharp.org/ - это библиотека AOP, которую я изучаю, которая также может помочь в регистрации, как показано здесь в проекте кода: http://www.codeproject.com/KB/dotnet/log4postsharp-intro.aspx.