Size: a a a

Kotlin Community

2020 January 31

LS

Lev Shagalov in Kotlin Community
А....
источник

LS

Lev Shagalov in Kotlin Community
Vladimir Petrakovich
Обычно управление доходит до вызова логгера, но запись многих логов отключена
Вот тут я понял, спасибо
источник

AM

Andrew Mikhaylov in Kotlin Community
Lev Shagalov
Что значит "логировать не надо"? Я понимаю это как "до log просто не доходит выполнение: типа if и все такое"
Я выше пример привёл, в случае с лямбдой иф спрятан внутри, стейтменты логирования по коду безусловные.
источник

LS

Lev Shagalov in Kotlin Community
Andrew Mikhaylov
Я выше пример привёл, в случае с лямбдой иф спрятан внутри, стейтменты логирования по коду безусловные.
Да, теперь я понял
источник

LS

Lev Shagalov in Kotlin Community
Короче, я могу без зазрения совести насовать всяких log.debug { выведи мне тут полмега текста } и спокойно жить на проде с уровнем логирования info
источник

AM

Andrew Mikhaylov in Kotlin Community
Точно так
источник

LS

Lev Shagalov in Kotlin Community
Ну, если логер это поддерживает конечно же
источник

AM

Andrew Mikhaylov in Kotlin Community
Можно хоть джейсонины в строки превращать
источник

AL

Alexander Levin in Kotlin Community
Lev Shagalov
Ну, если логер это поддерживает конечно же
Не суть важно, инлайн лямбды это про язык, а не про поддержку в логгерах :)

Ну т.е. если у логгера нету isXEnabled, то могут быть проблемы, да. Но вроде это везде есть.
источник

LS

Lev Shagalov in Kotlin Community
А у меня вот есть
operator fun invoke(message: Any?) = info(message)
А заинлайнить нельзя
источник

AL

Alexander Levin in Kotlin Community
Lev Shagalov
А у меня вот есть
operator fun invoke(message: Any?) = info(message)
А заинлайнить нельзя
inline operator fun

Но пока не видно, что инлайнить.
источник

AE

Alexandr Emelyanov in Kotlin Community
Andrew Mikhaylov
inline fun log(msg: () -> String) {
   if(logEnabled) println(msg())
}

ровно о том же, что и руками заворачивать, но короче.
Нормальные логгеры так сами делают внутри методов
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexandr Emelyanov
Нормальные логгеры так сами делают внутри методов
Слушай, ну я самый простой пример реализации привёл для понимания сути, ну чё ты пристал?)
источник

DB

Dmitro Boiko in Kotlin Community
А подскажет кто почему flowchannel работает быстрее чем flow?
источник

OY

Oleg Yukhnevich in Kotlin Community
Dmitro Boiko
А подскажет кто почему flowchannel работает быстрее чем flow?
а benchmarks где?
источник

AE

Alexandr Emelyanov in Kotlin Community
Andrew Mikhaylov
Слушай, ну я самый простой пример реализации привёл для понимания сути, ну чё ты пристал?)
Этот пример напоминает суровое легаси когда логгеры сами так не умели
источник

IS

Ivan Sablin in Kotlin Community
Ребят, доброго времени! Сталкивался ли кто с тем, что корутина не всегда отменяется.
Делаю что-то типо
job = launch{}
job.cancel()

Логика такая, что есть строка поиска, туда пользователем вводятся символы. В корутине есть delay чтобы не реагироват ьна каждый новый символ когда пользователь печатает. При появлении нового сивола делаю cancel(). но в итоге все равно запросы в сет ьпросачиваются, потому что ~ половина запущенных корутин не отменяется. При этом если делать больше интервал между вводом в строку поиска, то все работает как ожидается
источник

PS

Pasha Shmigol in Kotlin Community
вы внутри корутины проверяете флаг isActive ?
источник

IS

Ivan Sablin in Kotlin Community
Pasha Shmigol
вы внутри корутины проверяете флаг isActive ?
Нет. Это обычная практика по аналогии с isInterrupted в потоках?
источник

PS

Pasha Shmigol in Kotlin Community
да
источник