<div dir="ltr">Hi.<div><br></div><div>As we know, it is good when library doesn't have any hardcoded dependencies at all.<br></div><div><br></div><div>I don't understand what is a good way to remove lager (or any other logging library) from library dependencies.</div><div><br></div><div><br></div><div>For example, we have an mpegts decoder/encoder library. This library takes binary and unpacks it to list of frames or packs back:</div><div><br></div><div>mpegts_decoder:decode(Binary,  mpegts_decoder:init(Options)) ->  {ok, Frames, State}</div><div><br></div><div><br></div><div>There are calls to lager in some places of code that are used for indicating some statuses:</div><div><div><br></div><div>dump_psi(Decoder, NewPMT),</div></div><div>lager:info("PMT: ~p", [Descriptors]),<br></div><div>...</div><div><br></div><div><br></div><div>What is the proper way to refuse from adding logger as a dependency for such pure library?</div><div>Pass a callback into  initialisation options?</div><div><br></div><div><br></div></div>