Вход в систему Clojure
Для разработки Java я использую Slf4j и Logback.
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.debug("Hello world.");
Как использовать эти две библиотеки в программах Clojure? В большинстве программ Clojure отсутствует концепция .class(возможно, через AOT).
Что вы используете для входа в Clojure?
Ответы
Ответ 1
Clojure поставляется с основной библиотекой протоколов в tools.logging. Добавьте [org.clojure/tools.logging "0.2.3"]
к вашему leiningen project.clj
и запустите $lein deps
, как обычно.
После того, как вы use
в библиотеке вы можете начать отключение
(use 'clojure.tools.logging)
(warn "something bad happened")
Теперь вы также можете получить доступ к объекту журнала и задать необходимые поля, обратитесь к следующей статье для этого (написано для более раннего Contrib-lib, но применяются те же идеи):
http://www.paullegato.com/blog/setting-clojure-log-level/
Ответ 2
Посмотрите на это также https://github.com/ptaoussanis/timbre. Это выглядит очень просто и красиво сделано.
Ответ 3
tools.logging. Подробнее см. tools.logging vs clojure.contrib.logging
Ответ 4
некоторые выдержки из одного из моих проектов, который использует log4j:
log.clj:
(ns
#^{:author "Arthur Ulfeldt",
:doc "Polynomial threshold encryption"}
com.cryptovide.log
(:gen-class)
(:use
clojure.contrib.logging))
...
(def logger (org.apache.log4j.Logger/getLogger "A1"))
(def log-levels (vec ( org.apache.log4j.Level/getAllPossiblePriorities)))
...
(defn start-logging []
(org.apache.log4j.BasicConfigurator/configure))
main.clj:
(start-logging)
(. logger setLevel (log-levels verbose-level))