Size: a a a

Clojure — русскоговорящее сообщество

2020 April 16

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
у нас обычный clojure.tools.logging, тоже слушаем сигналы, NPE нету
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
может, вопрос еще в том, как слушать сигналы?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
у нас вот эта штука https://github.com/pyr/signal
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
я этой штукой и слушаю. и если делать все на clojure.tools.logging все действительно работает.
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
я это поведение заметил случайно, где в одном из проектов при прочих равных условиях был io.pedestal.log вместо clojure.tools.logging
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
возможно, они тоже слушают сигналы и что-то свое делают
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
я в исходниках такого не нашел.
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
а самое противное, что стектрейс вообще ничего не говорит
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
говорит что вот эта функа clojure/core$pr_str что-то не то сделала. но .getMessage от ex содержит nil
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
может у него cause есть?
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
^C:msg uncaught exception :thread SIGINT handler :desc #error {
:cause clojure/core$pr_str
:via
[{:type java.lang.ExceptionInInitializerError
  :message nil
  :at [org.rssys.kb_index.core$exit_fn invokeStatic core.clj 21]}
 {:type java.lang.ClassNotFoundException
  :message clojure/core$pr_str
  :at [java.lang.Class forName0 Class.java -2]}]
:trace
[[java.lang.Class forName0 Class.java -2]
 [java.lang.Class forName Class.java 427]
 [clojure.lang.RT classForName RT.java 2211]
 [clojure.lang.RT classForName RT.java 2220]
 [clojure.lang.LispReader$EvalReader invoke LispReader.java 1317]
 [clojure.lang.LispReader$DispatchReader invoke LispReader.java 853]
 [clojure.lang.LispReader read LispReader.java 285]
 [clojure.lang.LispReader read LispReader.java 216]
 [clojure.lang.LispReader read LispReader.java 205]
 [clojure.lang.RT readString RT.java 1878]
 [clojure.lang.RT readString RT.java 1873]
 [org.rssys.kb_index.core$exit_fn$fn__1508 <clinit> core.clj 21]
 [org.rssys.kb_index.core$exit_fn invokeStatic core.clj 21]
 [org.rssys.kb_index.core$exit_fn doInvoke core.clj 19]
 [clojure.lang.RestFn invoke RestFn.java 408]
 [signal.handler$__GT_handler$fn__1176 invoke handler.clj 23]
 [signal.handler.proxy$java.lang.Object$SignalHandler$d8c00ec7 handle nil -1]
 [sun.misc.Signal$InternalMiscHandler handle Signal.java 198]
 [jdk.internal.misc.Signal$1 run Signal.java 220]
 [java.lang.Thread run Thread.java 832]]}
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
вот от момента нажатия ^C
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
функа exit-fn содержит единственный оператор
(log/info :m "abc123")
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
а это в уберджаре или в репле?
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
это в run, то есть как в lein run, только через tools.deps
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
если поменять альяс log на clojure.tools.logging то все работает
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
выдает вот это
^C{:t #inst"2020-04-16T18:11:48.506Z" :l "INFO", :m :m abc123 :s "org.rssys.kb-index.core"}
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
у меня было так, что поведение в репле отличалось от джара. Проверь, как ведет себя в джарнике
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
в лейне сигналы вообще не работают
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
источник