Class: ActionMCP::Logging::State
- Inherits:
-
Object
- Object
- ActionMCP::Logging::State
- Defined in:
- lib/action_mcp/logging/state.rb
Overview
Thread-safe global state for MCP logging
Instance Method Summary collapse
-
#disable! ⇒ Boolean
Disable logging.
-
#enable! ⇒ Boolean
Enable logging.
-
#enabled=(value) ⇒ Boolean
Set enabled state.
-
#enabled? ⇒ Boolean
Check if logging is enabled.
-
#initialize ⇒ State
constructor
Initialize with default values.
-
#level ⇒ Integer
Get current minimum log level as integer.
-
#level=(new_level) ⇒ Integer
Set minimum log level.
-
#level_symbol ⇒ Symbol
Get current minimum log level as symbol.
-
#reset! ⇒ void
Reset to initial state (for testing).
-
#should_log?(message_level) ⇒ Boolean
Check if a message at the given level should be logged.
Constructor Details
#initialize ⇒ State
Initialize with default values
10 11 12 13 |
# File 'lib/action_mcp/logging/state.rb', line 10 def initialize @enabled = Concurrent::AtomicBoolean.new(false) @global_level = Concurrent::AtomicFixnum.new(Level::LEVELS[:warning]) end |
Instance Method Details
#disable! ⇒ Boolean
Disable logging
29 30 31 |
# File 'lib/action_mcp/logging/state.rb', line 29 def disable! @enabled.make_false end |
#enable! ⇒ Boolean
Enable logging
23 24 25 |
# File 'lib/action_mcp/logging/state.rb', line 23 def enable! @enabled.make_true end |
#enabled=(value) ⇒ Boolean
Set enabled state
36 37 38 39 40 41 42 |
# File 'lib/action_mcp/logging/state.rb', line 36 def enabled=(value) if value enable! else disable! end end |
#enabled? ⇒ Boolean
Check if logging is enabled
17 18 19 |
# File 'lib/action_mcp/logging/state.rb', line 17 def enabled? @enabled.value end |
#level ⇒ Integer
Get current minimum log level as integer
46 47 48 |
# File 'lib/action_mcp/logging/state.rb', line 46 def level @global_level.value end |
#level=(new_level) ⇒ Integer
Set minimum log level
59 60 61 62 63 |
# File 'lib/action_mcp/logging/state.rb', line 59 def level=(new_level) level_int = Level.coerce(new_level) @global_level.value = level_int level_int end |
#level_symbol ⇒ Symbol
Get current minimum log level as symbol
52 53 54 |
# File 'lib/action_mcp/logging/state.rb', line 52 def level_symbol Level.name_for(@global_level.value) end |
#reset! ⇒ void
This method returns an undefined value.
Reset to initial state (for testing)
77 78 79 80 |
# File 'lib/action_mcp/logging/state.rb', line 77 def reset! disable! self.level = :warning end |
#should_log?(message_level) ⇒ Boolean
Check if a message at the given level should be logged
68 69 70 71 72 73 |
# File 'lib/action_mcp/logging/state.rb', line 68 def should_log?() return false unless enabled? = Level.coerce() >= @global_level.value end |