Files
CljElixir/stubs/Logger.clj
2026-03-09 23:09:46 -04:00

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]))