top | item 17407125

(no title)

hitsthings | 7 years ago

Pattern 1 you can pass in a logger there or a noop logger and not have any duplication.

discuss

order

pavel_lishin|7 years ago

It's not my job to pass a logger to some given class method. Should I pass in a database handle and a DNS resolver, too?

d--b|7 years ago

Well, I could do operations for logging that are otherwise not required...

   if(log) { logger.write(computestuff()); }

meheleventyone|7 years ago

Depending on language if you have first class functions you could also do:

  logger.write(computestuff);
Or for parameterized functions:

  logger.write(() => computestuff(a, b, c));
Then all that logging policy stuff can live with the logging and doesn't need to be checked explicitly throughout the codebase.

rini17|7 years ago

This means to interrupt whatever you're doing and implement the logger and do the associated refactoring.