Здравствуйте.
В Web SDK отсутствует возможность полностью отключить логгирование, возможно лишь изменить severity логгера. Как следствие, в конфиге по-умолчанию, в консоли браузера видно много "внутренней кухни" SDK, что само по себе уже плохо, и может быть совершенно неуместным в случае, если поверх Web SDK пишется обёртка для предоставления партнёрам, инкапсулирующая многие аспекты работы с ним.
Частично проблема решается установкой severity, скажем, в "WARN", но это костыль, так как логгер https://github.com/flashphoner/flashphoner_client/blob/wcs_api-2.0/src/util.js#L171 безальтернативно использует "console.log()" для всех уровней.
Второй стороной проблемы является невозможность перехвата этих логов. Скажем, если на фронтенде используется какой-либо трекер ошибок вроде Sentry или система сбора телеметрии, то было бы очень здорово иметь возможность зароутить логи из SDK в эти системы. Отчасти, это можно сделать подпиской на все события различных объектов SDK, но это лишь малая часть доступной информации (особенно в сравнении с severity "TRACE") и придётся писать много boilerplate-кода. Для решения этой задачи было бы неплохо иметь возможность подменять логгер на свою реализацию, либо позволить передавать коллекцию инстансов таких логгеров с интерфейсом того, который лежит в упомянутом выше "util.js", что бы вызов метода текущего внутреннего логгера (info(), debug(), etc.) сопровождался вызовом аналогичного метода и "внешнего" логгера.
Короче говоря, это feature request из двух пунктов, первый из них очень желаем и прост в реализации:
- для метода "Flashphoner.init()" добавить новое свойство в объект конфигурации логгера "logger", которое позволит отключить запись логов всех уровней в консоль браузера. Предусмотреть управление этой опцией логгера через объект, получаемый методом "Flashphoner.getLogger()", что бы была возможность включать и выключать эту опцию вне этапа конфигурирования Flashphoner через вызов "init()"
- в дополнение к предыдущему пункту, для метода "Flashphoner.init()" добавить новое свойство-массив в объект конфигурации логгера "logger", которое позволит указывать список инстансов собственных логгеров для сбора информации от SDK, как было сказано выше.
Пример кода для STR:
Сообщения в консоли браузера:
В Web SDK отсутствует возможность полностью отключить логгирование, возможно лишь изменить severity логгера. Как следствие, в конфиге по-умолчанию, в консоли браузера видно много "внутренней кухни" SDK, что само по себе уже плохо, и может быть совершенно неуместным в случае, если поверх Web SDK пишется обёртка для предоставления партнёрам, инкапсулирующая многие аспекты работы с ним.
Частично проблема решается установкой severity, скажем, в "WARN", но это костыль, так как логгер https://github.com/flashphoner/flashphoner_client/blob/wcs_api-2.0/src/util.js#L171 безальтернативно использует "console.log()" для всех уровней.
Второй стороной проблемы является невозможность перехвата этих логов. Скажем, если на фронтенде используется какой-либо трекер ошибок вроде Sentry или система сбора телеметрии, то было бы очень здорово иметь возможность зароутить логи из SDK в эти системы. Отчасти, это можно сделать подпиской на все события различных объектов SDK, но это лишь малая часть доступной информации (особенно в сравнении с severity "TRACE") и придётся писать много boilerplate-кода. Для решения этой задачи было бы неплохо иметь возможность подменять логгер на свою реализацию, либо позволить передавать коллекцию инстансов таких логгеров с интерфейсом того, который лежит в упомянутом выше "util.js", что бы вызов метода текущего внутреннего логгера (info(), debug(), etc.) сопровождался вызовом аналогичного метода и "внешнего" логгера.
Короче говоря, это feature request из двух пунктов, первый из них очень желаем и прост в реализации:
- для метода "Flashphoner.init()" добавить новое свойство в объект конфигурации логгера "logger", которое позволит отключить запись логов всех уровней в консоль браузера. Предусмотреть управление этой опцией логгера через объект, получаемый методом "Flashphoner.getLogger()", что бы была возможность включать и выключать эту опцию вне этапа конфигурирования Flashphoner через вызов "init()"
- в дополнение к предыдущему пункту, для метода "Flashphoner.init()" добавить новое свойство-массив в объект конфигурации логгера "logger", которое позволит указывать список инстансов собственных логгеров для сбора информации от SDK, как было сказано выше.
Пример кода для STR:
Code:
Flashphoner.init();
Code:
INFO webrtc - Initialized
INFO websocket - Initialized
INFO core - Initialized