Сегодня с автором
@golangdigest разгорелся диалог, когда нужно давать интерфейс для логгера? (Речь о го, но офкорс применимо к остальным)
И вот итог:
- если у вас приложение(консольное, десктопное), то тут передача логгера ни к чему(кэп). Хватит параметра для файлика куда писать
- вебсервис почти тоже самое, либо пишите локально, а потом другой инструмент собирает, либо по сети куда-то туда(опять кэп). Тут только вопрос - жсон или тхт. Тут одного верного ответа не будет, зависит от фирмы/команды/требований. Но я бы начинал с тхт.
- но если у вас либа, вот тут интересно.
Если судьба дала вам сделать простенькую библиотеку с коротким жизненным циклом(какая-то математика, парсилка или клиент к бд), то обвешиваться логгером и продумыванием его методов нет смысла, пользователю либы лог ничего не даст(в большом большинстве случаев).
А вот если срок жизни больше(читай как клиент Consul, агрегатор событий, и все в таком духе), тот тут уже стоит дать возможность логгировать так, как захочет страдалец/ваш пользователь. Лишний раз узнать, что соединение с консулом отпало про причине ххх никому лишней не будет.
Такие дела, готов спорить до вашего посинения.