Logging in Clojure

后端 未结 4 1105
北海茫月
北海茫月 2021-02-01 05:00

For Java development, I use Slf4j and Logback.

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

How t

相关标签:
4条回答
  • 2021-02-01 05:28

    Clojure comes with a logging core library in tools.logging. Add [org.clojure/tools.logging "0.2.3"] to your leiningen project.clj and run $lein deps as usual.

    Once you use the library you can start logging away

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

    Now you can also access the logger object and set the required fields, refer to the following article for this (written for the older contrib-lib but the same ideas apply):

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

    0 讨论(0)
  • 2021-02-01 05:33

    tools.logging. For details, refer to tools.logging vs clojure.contrib.logging

    0 讨论(0)
  • 2021-02-01 05:33

    some excerpts from a one of my projects that uses 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))
    
    0 讨论(0)
  • 2021-02-01 05:35

    Look at this as well https://github.com/ptaoussanis/timbre . It looks very simple and nicely done.

    0 讨论(0)
提交回复
热议问题