Minga.Log (Minga v0.1.0)

Copy Markdown View Source

Per-subsystem logging with configurable log levels.

Wraps Logger with subsystem-aware filtering. Each subsystem has its own log level option (e.g., :log_level_render) that defaults to :default, meaning "inherit from the global :log_level option."

Subsystems

SubsystemOptionWhat it covers
:render:log_level_renderRender pipeline stage timing
:lsp:log_level_lspLSP client communication and errors
:agent:log_level_agentAI agent providers and sessions
:editor:log_level_editorGeneral editor operations and commands
:config:log_level_configConfig loading, hooks, advice, extensions
:port:log_level_portPort/parser process management

Usage

Minga.Log.debug(:render, "[render:content] 24µs")
Minga.Log.info(:agent, "[Agent] session started")
Minga.Log.warning(:lsp, "LSP server crashed")

Configuration

In your config.exs:

# Global default: suppress debug logs
set :log_level, :info

# Turn on debug logging just for the render pipeline
set :log_level_render, :debug

Summary

Functions

Logs a debug message for the given subsystem (if its level permits).

Returns the effective log level for a subsystem.

Logs an error message for the given subsystem (if its level permits).

Logs an info message for the given subsystem (if its level permits).

Logs a warning message for the given subsystem (if its level permits).

Types

level()

@type level() :: :debug | :info | :warning | :error

subsystem()

@type subsystem() :: :render | :lsp | :agent | :editor | :config | :port

Functions

debug(subsystem, message_or_fun)

@spec debug(subsystem(), String.t() | (-> String.t())) :: :ok

Logs a debug message for the given subsystem (if its level permits).

effective_level(subsystem)

@spec effective_level(subsystem()) :: :debug | :info | :warning | :error | :none

Returns the effective log level for a subsystem.

If the subsystem's option is :default, falls back to the global :log_level option.

error(subsystem, message_or_fun)

@spec error(subsystem(), String.t() | (-> String.t())) :: :ok

Logs an error message for the given subsystem (if its level permits).

info(subsystem, message_or_fun)

@spec info(subsystem(), String.t() | (-> String.t())) :: :ok

Logs an info message for the given subsystem (if its level permits).

warning(subsystem, message_or_fun)

@spec warning(subsystem(), String.t() | (-> String.t())) :: :ok

Logs a warning message for the given subsystem (if its level permits).