128 lines
3.0 KiB
Clojure
128 lines
3.0 KiB
Clojure
(ns Logger
|
|
"Elixir Logger module — structured logging.
|
|
|
|
In CljElixir: (Logger/info \"message\"), (Logger/debug (fn [] \"lazy\")), etc.
|
|
Log levels: :emergency :alert :critical :error :warning :notice :info :debug")
|
|
|
|
(defn debug
|
|
"Logs a debug message. Accepts string or zero-arity fn (lazy evaluation).
|
|
(Logger/debug \"detailed info\")
|
|
(Logger/debug (fn [] (str \"user=\" user-id)))"
|
|
([message-or-fun])
|
|
([message-or-fun metadata]))
|
|
|
|
(defn info
|
|
"Logs an info message.
|
|
(Logger/info \"server started on port 4000\")"
|
|
([message-or-fun])
|
|
([message-or-fun metadata]))
|
|
|
|
(defn notice
|
|
"Logs a notice message.
|
|
(Logger/notice \"configuration changed\")"
|
|
([message-or-fun])
|
|
([message-or-fun metadata]))
|
|
|
|
(defn warning
|
|
"Logs a warning message.
|
|
(Logger/warning \"disk usage above 80%\")"
|
|
([message-or-fun])
|
|
([message-or-fun metadata]))
|
|
|
|
(defn error
|
|
"Logs an error message.
|
|
(Logger/error \"failed to connect to database\")"
|
|
([message-or-fun])
|
|
([message-or-fun metadata]))
|
|
|
|
(defn critical
|
|
"Logs a critical message.
|
|
(Logger/critical \"system overload detected\")"
|
|
([message-or-fun])
|
|
([message-or-fun metadata]))
|
|
|
|
(defn alert
|
|
"Logs an alert message.
|
|
(Logger/alert \"database corruption detected\")"
|
|
([message-or-fun])
|
|
([message-or-fun metadata]))
|
|
|
|
(defn emergency
|
|
"Logs an emergency message.
|
|
(Logger/emergency \"system is going down\")"
|
|
([message-or-fun])
|
|
([message-or-fun metadata]))
|
|
|
|
(defn log
|
|
"Logs at the specified level.
|
|
(Logger/log :info \"dynamic level logging\")"
|
|
([level message-or-fun])
|
|
([level message-or-fun metadata]))
|
|
|
|
(defn configure
|
|
"Configures the logger at runtime.
|
|
(Logger/configure :level :debug)"
|
|
[options])
|
|
|
|
(defn level
|
|
"Returns the current log level.
|
|
(Logger/level) ;=> :info"
|
|
[])
|
|
|
|
(defn put-module-level
|
|
"Sets log level for specific modules.
|
|
(Logger/put-module-level MyModule :debug)"
|
|
[module level])
|
|
|
|
(defn delete-module-level
|
|
"Resets module-level logging to global.
|
|
(Logger/delete-module-level MyModule)"
|
|
[module])
|
|
|
|
(defn put-process-level
|
|
"Sets log level for the current process.
|
|
(Logger/put-process-level (Process/self) :debug)"
|
|
[pid level])
|
|
|
|
(defn delete-process-level
|
|
"Resets process-level logging.
|
|
(Logger/delete-process-level pid)"
|
|
[pid])
|
|
|
|
(defn enable
|
|
"Enables logging for the current process."
|
|
[pid])
|
|
|
|
(defn disable
|
|
"Disables logging for the current process."
|
|
[pid])
|
|
|
|
(defn metadata
|
|
"Gets or sets logger metadata for the current process.
|
|
(Logger/metadata) ;=> []
|
|
(Logger/metadata :request-id \"abc123\")"
|
|
([])
|
|
([keyword-list]))
|
|
|
|
(defn reset-metadata
|
|
"Resets all logger metadata for the current process.
|
|
(Logger/reset-metadata) ;=> :ok"
|
|
([])
|
|
([keys]))
|
|
|
|
(defn flush
|
|
"Flushes the logger, ensuring all messages are processed.
|
|
(Logger/flush) ;=> :ok"
|
|
[])
|
|
|
|
(defn add-backend
|
|
"Adds a logging backend.
|
|
(Logger/add-backend :console)"
|
|
([backend])
|
|
([backend opts]))
|
|
|
|
(defn remove-backend
|
|
"Removes a logging backend."
|
|
([backend])
|
|
([backend opts]))
|