Skip to content
/ twig Public

A little logging helper for Clojure/ClojureScript projects

License

Notifications You must be signed in to change notification settings

clojusc/twig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

920b8ee · Jan 27, 2019
Oct 11, 2017
Nov 15, 2016
Mar 23, 2017
Nov 18, 2016
Sep 25, 2017
Jan 27, 2019
Oct 7, 2018
Nov 15, 2016
Oct 7, 2018
Jan 27, 2019

Repository files navigation

twig

Build Status Dependencies Status Clojars Project Tag Clojure version

A little logging helper for Clojure/ClojureScript projects

Table of Contents

Introduction

This is just a tiny bit of code, but it was starting to get duplicated around a bunch of projects, so now there's twig.

Screenshots

Clojure

Usage in a Clojure REPL:

Clojure screenshot

Clojurescript

Output in a Node.js app written in Clojurescript:

Clojurescript screenshot

Usage

Add to your project.clj:

[clojusc/twig "0.3.1"]

Then in a namespace of your choice:

(ns ...
  (:require [clojusc.twig :as logger])
  ...)

This will allow you to not only see nicely formatted log output (as configured in the included resources/logback.xml file), but also do things like setting the log level on a per-namespace basis:

(logger/set-level! '[com.datastax.driver
                     co.paralleluniverse]
                   :info)
(logger/set-level! 'my.project :debug)

Note that the level can be any of the levels supported by ch.qos.logback.classic Level (see the source code. As of now, those correspond to the following: :off, :error, :warn, :info, :debug, :trace, and :all. You may pass these as keywords, symbols, or strings.

:fatal is also supported; in Clojure this is aliased to :error, but in Clojurescipt it is its own level.

There are, of course, other things you can do besides setting the level. In Clojure (not Clojurescript), you can do the following:

(require [clojure.tools.logging :as log])

(log/debug "Logging agent:" log/*logging-agent*)
(log/debug "Logging factory:" (logger/get-factory))
(log/debug "Logging factory name:" (logger/get-factory-name))
(log/debug "Logger:" (logger/get-logger *ns*))
(log/debug "Logger name:" (logger/get-logger-name *ns*))
(log/debug "Logger level:" (logger/get-logger-level *ns*))
(log/debug "Logger context:" (logger/get-logger-context *ns*))
(log/debug "Logger configurator:" (logger/get-config *ns*))

License

Copyright © 2016-2018, Clojure-Aided Enrichment Center

Copyright © 2016, Element 84, Inc.

Copyright © 2015, Duncan McGreggor

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.