[erlang-questions] Architecture question: logging inside library

Mikael Pettersson <>
Mon Jan 11 14:39:34 CET 2016


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

That's what I would do.


More information about the erlang-questions mailing list