ayende/ravendb — pull request #94 by damianh (2012-03-30 10:47:57+00:00)
Title: Logging abstraction (don't pull this, changes are for discussion)

Gentlemen,

I've spiked fine grained nuget packages and got to a point, but want to rework it. One of the things I would like to address is the dependency on NLog that all the packages would have directly (or indirectly).

I am of the opinion that a concrete logging reference is an application level and deployment concern (Raven.Server, Raven.VisualHost, Raven.Web) and not a concern of a library (Raven.Client.Lightweight, Raven.Client.Embedded) that is used by your customers applications. Such applications should be able to use their log provider and version of choice.

The set of changes in this pull request add the abstraction and show a modified Raven.Client.Lightweight project that consumes it. Please see my comments in Files Changed for more info.

Outside of this pull requests / feature there would have to be an KB article on how to setup client logging, and it would be very simple.

A couple of other projects off the top of my head that follow the same principal: http://code.google.com/p/ncron/wiki/Logging , https://github.com/mookid8000/Rebus/tree/master/src/Rebus/Logging, http://code.google.com/p/mybatisnet/source/browse/branches/ibatis-1-maintenance/src/?r=36#src%2FIBatisNet.Common%2FLogging%253Fstate%253Dclosed

Cheers,

- Damian