-
Notifications
You must be signed in to change notification settings - Fork 483
Description
Extracted my comments from #404:
The problem we've got right now is that we've discussed deprecating Castle's logging abstraction (which predates newer .NET logging, its from around 2004-2005) but haven't done anything about formalising that proposal to let people know our position and encourage users to use other libraries directly. We've briefly discussed how we could support a new logging facility for Windsor that isn't tied to the current Castle logging abstraction and would give users more freedom and not force all logging to a lowest common denominator interface (i.e. loosing structured logging when using Serilog). (#404 (comment))
From my perspective, in Castle Project's prime (before 2010) users were building their applications with Windsor, MonoRail, ActiveRecord and other bits of the Castle stack so making use of the Castle logging abstraction wasn't a big thought as it just made sense; obviously most of these are now deprecated and other libraries have taken their place (i.e. ASP.NET MVC). We've been slimming down Windsor in the last year, and slowly deprecating bits dumped into what is today Castle Core. (#404 (comment))
Oh, I didn't realise ASP.NET Boilerplate recommended using Castle's logging: https://aspnetboilerplate.com/Pages/Documents/Logging.
We need to work out a plan for how Castle libraries can log (e.g. DynamicProxy telling you about a cache miss), and how users of Windsor could possibly wire up an ILogger-like interface to become a new Windsor logging facility.
I'm using the term "abstraction" for Castle's ILogger and ILoggerFactory; "adapters" for the implementations of theses (e.g. log4net), and "facility" for the Windsor facility.
/cc @castleproject/committers