I'm by no means an expert myself, but in our group, the value of the facade is not in giving us the ability to change the logging framework. True, that is something that we get, but we're in the category who is very unlikely to change our framework.
In our case, we are using a facade to tailor the logging interface to the needs of our application. We found that in all the semantic frameworks we looked at, they were still too focused on what we call the "forensics" model of logging--someone digging through the logs looking for some line of output in an attempt to analyze some event.
While this is a use case for us as well, it is actually not our primary use case. We want more of an instrumentation framework than a logging one, which will allow us to report on things of interest--even ones we haven't thought of at implementation time.
For example, our application doesn't need a "message" to accompany an event; instead, our "logger" will accept enums defining the event type and state objects representing specifics (eg. timestamps or other values) and will serialize these to facilitate reporting, perf analysis, business value metrics and so on, all in addition to supporting traditional forensics. (We recognize that we are, in fact, making the traditional forensics a little harder for the benefit of a simple-to-use-and-understand logging interface that increases the likelihood that we will actually use it and use it more often).
So to give you a summary answer succinctly, here's a roughly ranked order of the benefits we feel we're getting from using a logging facade.
- Consistent, purpose-built interface facilitating instrumentation (as opposed to just traditional logging, as discussed above)
- Mockable test points
- Injectable logger implementations suitable for everything from local development to AWS S3 or DB connections, depending on deployment (our app uses Autofac with constructor dependency injection)
- Substitutable logger frameworks enabling us to change to a different logger framework in the future if we want to. (Incidentally, we don't forsee this happening, so, on its own, wouldn't have convinced us to use a facade.)
And finally, 0 facades would lose these benefits, and 2 facades would not add to any of these benefits, so that's why 1 facade is the right number for us.
Great question, @brian! :)