Size: a a a

2018 April 28

S

Sergey in Kotlin Moscow
я спросил - как часто меняете?
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Maxim Zinchenko
1. final Logger logger - не static
2. не поддерживает смену логгеров на лету, хотя LoggerFactory поддерживает
в целом годится, если Wombat коротко-живущий объект
Кстати в java doc уже static

https://www.slf4j.org/apidocs/org/slf4j/Logger.html
источник

S

Sergey in Kotlin Moscow
Maxim Zinchenko
ровно та же фигня у extension val :) попробуйте :) никакой магии в kotlin нет - пока бы ЯВНО не заимпортите этот val никак вы его не увидете
Вам в автокомплите её импортнуть не предлагают?
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Maxim Zinchenko
захотели что-то пологгировать в файлик - пологировали, а потом отрубили
Так за это appenders отвечают, я уверен что они в рантайме меняются, хотя в жизни конечно таким не занимался
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Ruslan Ibragimov
Так за это appenders отвечают, я уверен что они в рантайме меняются, хотя в жизни конечно таким не занимался
Без изменения самого инстанса Logger конечно
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Sergey
я спросил - как часто меняете?
вопрос ведь не в этом. вам показывается warning про то, что вы вызваете метод у nullable параметра без проверки на null, но вам кажется, что передавать null будут редко.
в koltin попытались от этого защититься, так что посчитали контракты важной штукой
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Sergey
Вам в автокомплите её импортнуть не предлагают?
ровно также как static getLogger(Object) :) не более настойчиво, но и не менее
источник

ТБ

Тимур Бухараев in Kotlin Moscow
Maxim Zinchenko
захотели что-то пологгировать в файлик - пологировали, а потом отрубили
для этого аппендеры есть, их можно на ходу добавлять/убирать
но вообще ни разу на практике не требовалось на лету переконфигурировать логгеры
обычно это статическая система, как их один раз настроили, так они потом сто лет и работают

в динамике только log level надо было менять - например не хватает информации, давайте этому логгеру временно врубим debug или trace и посмотрим, что он расскажет поподробней
источник

S

Sergey in Kotlin Moscow
ох, магическая замена чего-то в рантайме ))  для меня это сейчас крайне сомнительное решение
источник

MZ

Maxim Zinchenko in Kotlin Moscow
в общем и целом конечно было бы неплохо иметь возможность легко менять поведение с кешированного логгера не некешированный. но в kotlin так не получится - кешированный получится воткнуть только в companion. я согласен, что есть случаи, когда даже получение логгера это существенная задержка, а логгировать хочется. на моей практике обычно получается либо скорость, либо логи. но согласен, решение с extension val не идеальное
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Тимур Бухараев
для этого аппендеры есть, их можно на ходу добавлять/убирать
но вообще ни разу на практике не требовалось на лету переконфигурировать логгеры
обычно это статическая система, как их один раз настроили, так они потом сто лет и работают

в динамике только log level надо было менять - например не хватает информации, давайте этому логгеру временно врубим debug или trace и посмотрим, что он расскажет поподробней
согласен, можно создать все мыслимые логгеры и рулить только через level. но ты при этом опять исходишь из того, что смена level не повлияет на экземпляр Logger. на самом деле даже в javadoc к slf4j ничего про это нет, но они действительно в примере делают static кеш.
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Sergey
ох, магическая замена чего-то в рантайме ))  для меня это сейчас крайне сомнительное решение
она как раз не магическая, а делается вполне себе через api slf4j.
это как раз настройка через файлы скорее магическая со всеми вытекающими косяками.
источник

S

Sergey in Kotlin Moscow
Maxim Zinchenko
она как раз не магическая, а делается вполне себе через api slf4j.
это как раз настройка через файлы скорее магическая со всеми вытекающими косяками.
Да я больше к тому, что мне по душе микросервисная архитектура
источник

S

Sergey in Kotlin Moscow
хочешь что-то поменять - взял, передеплоился )
источник

MZ

Maxim Zinchenko in Kotlin Moscow
ну так-то да. если так рассуждать, то всякие osgi вообще не нужны :)
источник

MZ

Maxim Zinchenko in Kotlin Moscow
хотя ведь и микросервисы можно запускать в одном контейнере
источник

MZ

Maxim Zinchenko in Kotlin Moscow
с общим логом :)
источник

S

Sergey in Kotlin Moscow
Maxim Zinchenko
хотя ведь и микросервисы можно запускать в одном контейнере
это только для самых хардкорных разработчиков
источник

S

Sergey in Kotlin Moscow
остальным это не доступно )
источник

MZ

Maxim Zinchenko in Kotlin Moscow
ну определенный профит в этом есть. хотя сейчас это точно не в тренде
источник