struct

Logit::NamespaceBinding

Inherits Struct / Value / Object

Binds a namespace pattern to a log level for filtering.

Namespace bindings allow different log levels for different parts of your codebase. They are created via Backend#bind or Config#bind.

Pattern Syntax

Patterns use Crystal's :: namespace separator with wildcards:

  • MyApp::* - Matches classes directly in MyApp (e.g., MyApp::User)
  • MyApp::** - Matches classes in MyApp and all nested namespaces
  • MyApp::Database::Query - Matches exactly this class

Examples

Logit.configure do |config|
  console = config.console(level: Logit::LogLevel::Info)

  # Reduce noise from database classes
  config.bind("MyApp::Database::*", Logit::LogLevel::Warn, console)

  # But keep verbose logging for query builder
  config.bind("MyApp::Database::QueryBuilder", Logit::LogLevel::Debug, console)
end

Constructors

new(pattern : String, level : LogLevel)

Creates a new binding. Raises if the pattern is invalid.

Source

Instance methods

level

The log level for namespaces matching this pattern.

Source
level=(level : LogLevel)

The log level for namespaces matching this pattern.

Source
matches?(namespace : String) : Bool

Checks if a namespace matches this pattern.

Source
pattern

The namespace pattern (e.g., "MyApp::Database::*").

Source
pattern=(pattern : String)

The namespace pattern (e.g., "MyApp::Database::*").

Source