Just as a data point, the castle project has already started to
embrace the client profile.
Microsoft is pushing client profile pretty hard. The VS2010 Console
Application wizard defaults to client profile. I believe Windows
Update defaults to providing the client profile for .NET 4.0.
The client profile is good for developers and makes deployment of the
.NET framework smaller and easier.
I am one of the authors of Common.Logging. If you are missing something in Common.Logging, please let us know. I already had some discussions around Common.Logging+NHibernate with Fabio and Oren long ago, I believe there were some needs regarding logging context?
As sourceforge is a big PITA, we recently decided to move over the project to github, hopefully encouraging more people to contribute. Also we will move the mailinglist and bugtracker, I will communicate the changes asap (by the end of next week).
As for introducing an external dependency, I fully understand your concerns. 2 thoughts on this:
1) there seems to be a misconception: When using Common.Logging there is only a dependency on Common.Logging, but *no* compile-time dependency on log4net. Only if you configure Common.Logging to use log4net (by specifying Common.Logging.Log4Net's LoggerFactoryAdapter in App.config) you obviously have a *runtime* dependency on log4net.
2) As for avoiding any dependency on a logging framework at all, I'd love to hear any ideas out there how to allow for using a logging framework without introducing a compile-time dependency. My only idea would be to hijack the existing System.Diagnostics.Trace API, providing TraceListeners for plugging in the logging framework of your choice.
As for migrating from log4net to System.Diagnostics, I attached a simple POC demonstrating the idea for introducing a log4net-compatible logging infrastructure. This should make the migration pretty much a no-brainer.
I plan to conduct some performance-tests as well as tests regarding the functional behavior - especially regarding maintaining the correct stacktrace in the logs - after moving the project on github to see if this idea makes sense. Any feedback is welcome!
We need the Log before start anything else.