Logging is strange problem. It needs to be instrumented, to some degree, in all the modules we use, not just in our application code.
For debugging and increased visibility in to production you just want to be notified of the internal workings.
The traditional log4j approach is kind of ridiculous to instrument as a module developer, you don't really have a need for log levels for instance.
Logging is also one of the very few cases that we need a truly process global module that is not in core.
So, i started to think about what the most minimal API for such a logger might bem.
I created an implementation and a draft spec. The idea here is that we define a minimal logger that different people can implement so long as they obey this minimal API contract. Then in my own modules, like request, I'm going to check for `process.logging` and if it's there I'll get myself a log function and use it accordingly.
I'm open to suggestions about the API but keep in mind that the last of features is it's greatest feature. Anything that can be built on top of this API without any breaking changes should not be in the spec portion.