aboutsummaryrefslogtreecommitdiff
path: root/cljcc-compiler/src/cljcc/core/log.clj
blob: bb92b02361cad477f977d4cb774340487693de82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(ns cljcc.core.log
  (:require [clojure.string :as str]))

(def ^:private log-colors
  {:debug "\u001b[36m" ; Cyan
   :info  "\u001b[32m" ; Green
   :warn  "\u001b[33m" ; Yellow
   :error "\u001b[31m" ; Red
   :reset "\u001b[0m"}) ; Reset color

(def reset-color (get log-colors :reset))

(defn- log-message [level message]
  (let [color (get log-colors level)
        formatted-message (str color "[" (str/upper-case (name level)) "] " message reset-color)]
    (println formatted-message)))

(defn debug [msg]
  (log-message :debug msg))

(defn info [msg]
  (log-message :info msg))

(defn warn [msg]
  (log-message :warn msg))

(defn error [msg]
  (log-message :error msg))