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