|
|
|
|
|
by ramses0
261 days ago
|
|
100% well said! Exactly how to handle log/print/metrics (as results/returns from functions) has been on my mental back burner for years. It's proper (but goofy) to pass in a `logger` object to every function, but the practicality of plumbing a "logger" everywhere is disgusting. There's a ton of value to be able to "capture" what was logged by a function, but as you mentioned with "metrics", the invasiveness of plumbing a metrics object "through" your code is really gross. Maybe a straw man syntax like: this.__classHooks__.logger
= new AbstractLogger(...)
this.__classHooks__.metrics
= new AbstractMetrics(...)
...like a puzzle piece, if the container (parent object) wants to "attach" to the exported interface, it can kindof dependency injection, otherwise logs and metrics might fly off into the void. |
|