This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-09-26
Channels
- # aleph (3)
- # beginners (98)
- # boot (24)
- # cljs-dev (13)
- # cljsrn (16)
- # clojure (97)
- # clojure-dusseldorf (2)
- # clojure-italy (2)
- # clojure-losangeles (2)
- # clojure-russia (48)
- # clojure-spec (28)
- # clojure-uk (79)
- # clojurescript (79)
- # community-development (2)
- # cursive (4)
- # datomic (35)
- # duct (1)
- # events (1)
- # fulcro (43)
- # heroku (1)
- # jobs (1)
- # lein-figwheel (2)
- # luminus (1)
- # lumo (12)
- # nyc (1)
- # off-topic (6)
- # om (1)
- # pedestal (7)
- # portkey (9)
- # proton (1)
- # re-frame (45)
- # reagent (27)
- # rum (2)
- # shadow-cljs (78)
- # spacemacs (3)
- # specter (2)
- # testing (2)
- # vim (41)
в джаве есть несколько API для логирования. разные либы юзают разные АПИ. это плохая новость
хорошая - все их можно свести заглушками к log4j или logback. соотв тебе нужно его поставить и сконфигурить
SLF4J из твоего сообщения - это название одного из таких API (т.е. это либа, но сама не логирует, а только стучится в logback или log4j или еще куда
@ivana https://logback.qos.ch/documentation.html короче тебе нужно в classpath положить файлик logback.xml (погугли формат)
>> PS какая хреновая это зараза - библиотеки логинга! не могу сдержаться, но "какая это хреновая зараза - говнокодеры" =(
без обид только. но суть в том, что спустя некоторое время при добавлении еще одной либы вполне может подтянуться таки другой бекенд к SLF4J и логгинг заработает на полную.
правильно - добавить что-то вроде такого https://github.com/ngriso/permisdevote/blob/master/src/test/resources/logback.xml (если логгинг вообще не нужен)
Спасибо. Разумеется, пока не не научишься защищаться от лог-спама, со следующей добавленной либой может произойти та же история. Но я, простите, не ожидал, что подключая либу, мне надо будет разбираться во многих моментах, напрямую с ее функционалом не связанных, но мешающих нормально ей пользоваться.
обрезать лишнее - не проблема (дело всего 1 строчки в logback.xml), а вот добавить логирование когда оно понадобится ну так, самую чуточку, посложнее будет
добавить логирование - это будет моя инициатива, и тогда я осознанно подойду в изучению и выбору конкретного логгера, и почему-то мне кажется, что у меня получится это проще, чем 5 часов пытаться избавиться от прилетевшего неизвестно чего, что я не заказывал. но позицию понял, да.
тем более, что реч, как я понял, про логи из org.eclipse.jetty, что по сути полноценный веб-сервер... веб-сервер без логов это странно
внутрь - придется лезть в ее содержимое. но если я полезу в ее код, то в любом случае буду в нем разбираться. а если она как черный ящик, то достаточно логов внешних вызовов имхо.
а если это гребаный https://github.com/eclipse/jetty.project - тогда врядли
ну да, я понимаю о чем ты. но все равно можно делать это логирование в либах как-то более настраиваемо и предсказуемо, чем просто заменять молча лог-интерфейс, не прикладывая ни конфига ни настроек, и считая, что разработчик сам все знает и настроит. а если завтра какая-нибудь либа мне диск форматировать начнет? типа, должен быть конфиг, в котором указано, какие разделы форматировать не надо )
у логирования должно же быть некое поведение по умолчанию? ну вот по умолчанию - писать логи в консоль. что вполне логично и часто юзается
https://www.eclipse.org/jetty/documentation/9.4.x/default-logging-with-stderrlog.html
хотя я полностью соглашусь, что по дефолту стоило бы писать только >= INFO, но не DEBUG
Сложно быть библиотекой в 2017 году. Нужно и логи писать, и метрики отсылать, и уметь останавливаться, если не успеваешь в таймслот работу выполнить. Ещё сложнее, если интерфейсы для всего этого не в стандартной библиотеке языка.
привет вопрос по докеру, может быть кто-то сталкивался докер используется для разработки на clojure с хоста в контейнер монтируется директория с кодом внутри контейнера jvm в контейнере запускается repl server порт пробрасывается на localhost на хосте запускается emacs cider и коннектится к repl и это работает, но есть проблемы на хосте папка с проектом это /User/kuzmin/projects/......../project в контейнере /usr/src/app иногда редактору сносит крышу и он не правильно обрабатывает ошибки, не правильно прыгает по файлам, т.к. пути разные особенно это заметно при работе с cljs плюс там maven и репозиторий хранится только в контейнере в /root/.m2 соответственно хост его не видит, и если открыть документацию в emacs, там ссылка на какую-нибудь jar из репозитория, и емакс ее не может открыть, т.к. на хосте нет такого файла при использовании emacs tramp все ок, но не все с ним работает как нужно и нужно git тащить в контейнер можно еще попробовать сделать одинаковые пути на хосте и в контейнере можно запустиь emacs в docker можно посмотреть в сторону nrepl middleware и как-то подменять пути (ИМХО правильный путь, но ничего готового я не нашел) сталкивались с подобным? может быть с другими языками?
я сталкивался, решилось использованием кастомной настройки в project.clj - :local-repo "/tmp/local-m2/foo"
+ маунтом вольюма - -v /tmp/local-m2/foo:/tmp/local-m2/foo
вся соль в использовании одинаковых путей на хостовой машине и в контейнере
более чистый путь - завести в контейнере пользователя, типа box
с домашней директорией /home/box
и на хосте создать линк ln -s $HOME/.m2 /home/box/.m2
в этом случае не нужно будет кастомизировать локальный репозиторий
естественно процес в контейнере стоит запускать под этим самым пользователем
там еще беда с cljs, я уже точно не помню в чем причина, пришлось в Dockerfile добавлять:
RUN mkdir -p /Users/m_kuzmin/projects/github \
&& ln -s /usr/src/app /Users/m_kuzmin/projects/github/form
можно еще не делать пользователей, а хранить проекты в /projects/.... на хосте и на клиенте, а репозиторий хранить в той же директории, что и проект, настроив через :local-repo
на маке не так то просто добавить директорию типа /projects
)
по крайней мере с последними версиями мак оси
а, это я как раз со своим случаем попутал, в /home/ создать ничего не получится ьез отключения какого-то спеыиального нового мода
может еще какой-то вариант есть? я вчера вечером пару часов искал, но как-то безрезультатно
других не ведаю(
есть вариант с динамической модификацией class-path через middleware, но там черт ногу сломит, у меня терпения разобраться не хватило