24

对于 Java 开发,我使用 Slf4j 和 Logback。

Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.debug("Hello world.");

如何在 Clojure 程序中使用这两个库?大多数 Clojure 编程都没有 .class 概念(当然可以通过 AOT)。

你用什么来登录 Clojure?

4

4 回答 4

34

Clojure 在tools.logging中附带了一个日志核心库。添加[org.clojure/tools.logging "0.2.3"]到您的 leiningenproject.clj$lein deps像往常一样运行。

进入use图书馆后,您就可以开始注销了

(use 'clojure.tools.logging)
(warn "something bad happened") 

现在您还可以访问 logger 对象并设置必填字段,请参阅以下文章(为较旧的 contrib-lib 编写,但适用相同的想法):

http://www.paullegato.com/blog/setting-clojure-log-level/

于 2011-03-07T13:11:34.637 回答
14

看看这个https://github.com/ptaoussanis/timbre。它看起来非常简单而且做得很好。

于 2013-04-09T13:58:18.130 回答
9

工具.记录。有关详细信息,请参阅tools.logging 与 clojure.contrib.logging

于 2011-10-12T15:18:37.920 回答
5

我的一个使用 log4j 的项目的一些摘录:

日志.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))
于 2011-03-07T19:42:54.257 回答