Appearance
Логирование
CLI использует интерфейс swift-log интерфейс для логирования. Пакет абстрагирует детали реализации логирования, позволяя CLI быть независимым от её исполнения. Логер внедряется с помощью зависимости swift-service-context и может быть доступен из любого места с помощью:
bash
ServiceContext.current?.logger
[!ПРИМЕЧАНИЕ]
swift-service-context
передает экземпляр с помощью локальных переменных задачи, которые не распространяют значение при использованииDispatch
, поэтому если вы запускаете асинхронный код с помощьюDispatch
, вам нужно будет получить экземпляр из контекста и передать его в асинхронную операцию.
Что логировать
Логи не являются интерфейсом CLI. Они являются инструментом для диагностики проблем по мере их возникновения. Поэтому чем больше информации вы предоставите, тем лучше. При создании новых функций поставьте себя на место разработчика, столкнувшегося с неожиданным поведением, и подумайте, какая информация будет ему полезна. Убедитесь, что вы используете правильный уровень лога. В противном случае разработчики не смогут отфильтровать шум.