2011-03-07 13 views
22

Para el desarrollo de Java, utilizo Slf4j y Logback.Iniciando sesión Clojure

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

¿Cómo utilizar estas dos bibliotecas en los programas de Clojure? La mayoría de la programación de Clojure no tiene un concepto de clase (posible, por supuesto, a través de AOT).

¿Qué se utiliza para iniciar sesión en Clojure?

+0

Hay dos sobrecargas para 'getLog()': uno usa una 'Clase', el otro toma' String'. Simplemente podría usar el 'String'. –

Respuesta

32

Clojure viene con una biblioteca principal de registro en tools.logging. Agregue [org.clojure/tools.logging "0.2.3"] a su leiningen project.clj y ejecute $lein deps como de costumbre.

Una vez que use la biblioteca se puede iniciar el registro de distancia

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

Ahora también se puede acceder al objeto registrador y establecer los campos necesarios, consulte el siguiente artículo para esto (escrito para la mayor contrib-lib pero se aplican las mismas ideas):

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

+10

contrib está en desuso en favor de tools.logging https://github.com/clojure/tools.logging –

5

algunos extractos de una 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

Gracias por el fragmento. – Chiron

10

Mire esto también https://github.com/ptaoussanis/timbre. Se ve muy simple y muy bien hecho.

+0

¡En realidad, el timbre es lo que prefiero como el registro fuera de la caja! espía y otras funcionalidades son muy útiles. – claj

+1

Aquí hay otra pregunta que cubre Timbre logging en más detalle: http://stackoverflow.com/questions/32310619/clojure-configure-timbre-logging/32340732#32340732 –

Cuestiones relacionadas