Created *https://github.com/joyent/node/issues/3733*

On Thu, Jul 12, 2012 at 7:21 PM, Matt <hel...@gmail.com> wrote:

> In my experience most libraries don't even bother logging anything, and so
> all logging ends up being custom, giving you full control over it. What are
> you using that logs that you can't customise?
>
>
> On Thu, Jul 12, 2012 at 10:21 AM, Elad Ben-Israel <
> elad.benisr...@gmail.com> wrote:
>
>> I'm getting a vibe that no one thinks this is actually a need and
>> wondering where my perception is skewed. In systems I worked on, we could
>> not control all the modules we were using and make them support pluggable
>> logging. I'm also wondering if this makes sense as the best practice since
>> I wouldn't really want to care about this all the time and pass some
>> logging object to every async call I'm making.
>>
>> On Wed, Jul 11, 2012 at 8:18 PM, Isaac Schlueter <i...@izs.me> wrote:
>>
>>> They could.  Bunyan is pretty nice and has this capability as well.
>>>
>>> On Wed, Jul 11, 2012 at 8:51 AM, Elad Ben-Israel
>>> <elad.benisr...@gmail.com> wrote:
>>> > On Wed, Jul 11, 2012 at 6:34 PM, Guillermo Rauch <rau...@gmail.com>
>>> wrote:
>>> >>
>>> >> Socket.io's logger is pluggable
>>> >
>>> >
>>> > Unfortunately not all libraries employ pluggable logging :-)
>>> >
>>> >>
>>> >>
>>> >>
>>> >> On Wednesday, July 11, 2012, Elad Ben-Israel wrote:
>>> >>>
>>> >>>
>>> >>>
>>> >>> On Wed, Jul 11, 2012 at 5:25 PM, Matt <hel...@gmail.com> wrote:
>>> >>>>
>>> >>>> On Tue, Jul 10, 2012 at 6:17 PM, Elad Ben-Israel
>>> >>>> <elad.benisr...@gmail.com> wrote:
>>> >>>>>
>>> >>>>> Not sure exactly what use case Gaurav is interested in, but I was
>>> >>>>> interested in this thread because I think there is an unmet need
>>> around
>>> >>>>> logging which domain-attached context could help solve (even a
>>> single
>>> >>>>> pointer to a global instance). Logs are emitted everywhere across
>>> >>>>> application (and library) stack and in node, mostly via
>>> `console.xxx`. One
>>> >>>>> useful feature would be to allow, for example, correlating all
>>> console logs
>>> >>>>> emitted during the processing of an incoming request. A few logging
>>> >>>>> libraries do allow pushing context but they all require passing
>>> along some
>>> >>>>> state throughout the async hoops, which means modifying the way
>>> logging is
>>> >>>>> done throughout the entire stack.
>>> >>>>
>>> >>>>
>>> >>>> Well yes, you can't use console.log(), but "Don't Do That" anyway,
>>> it's
>>> >>>> bad practice. Look at how Haraka does logging - every log line gets
>>> a UUID
>>> >>>> associated with the current connection/transaction. It has made
>>> tracing
>>> >>>> issues with mail at Craigslist an absolute dream.
>>> >>>>
>>> >>>
>>> >>> Haraka is awesome but it has the privilege of being a 'mini
>>> ecosystem'
>>> >>> where plugins must adhere to the Haraka environment (in which case,
>>> use the
>>> >>> Haraka `this.logxxx()` functions which emit the request UUID by
>>> extracting
>>> >>> them from the current context in `this`).
>>> >>>
>>> >>> Now say you would want to create a Hakara plugin that used a library
>>> like
>>> >>> socket.io for example (just an example) which emits it's own logs -
>>> now what
>>> >>> do you do? You will need to pass the Haraka `this` pointer all the
>>> way to
>>> >>> every log callsite in the socket.io codebase. Not very practical.
>>> >>>
>>> >>>
>>> >>>>
>>> >>>> Matt.
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Elad.
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Guillermo Rauch
>>> >> LearnBoost CTO
>>> >> http://devthought.com
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Elad.
>>>
>>
>>
>>
>> --
>> Elad.
>>
>
>

Reply via email to