Class: Makit::Logging::Logger
- Inherits:
-
Object
- Object
- Makit::Logging::Logger
- Defined in:
- lib/makit/logging/logger.rb
Overview
Main logger class that orchestrates logging through sinks
This class provides a clean interface for logging with support for sink-based output processing. It follows the same pattern as the Commands::Runner but for logging operations.
Instance Attribute Summary collapse
-
#level ⇒ Symbol
readonly
Minimum log level for filtering.
-
#sinks ⇒ Array<Sinks::Base>
readonly
List of sinks to process log requests.
-
#verbosity ⇒ Symbol
readonly
Current verbosity level.
Instance Method Summary collapse
-
#config ⇒ Hash
Get logger configuration.
-
#debug(message, context = {}) ⇒ void
Log a debug message.
-
#error(message, context = {}) ⇒ void
Log an error message.
-
#fatal(message, context = {}) ⇒ void
Log a fatal message.
-
#info(message, context = {}) ⇒ void
Log an info message.
-
#initialize(sinks: [], level: :info, verbosity: :normal) ⇒ Logger
constructor
Initialize the logger with sinks and log level.
-
#log(level, message, context = {}, verbosity: :normal) ⇒ void
Log a message with the specified level.
-
#quiet(message, context = {}) ⇒ void
Log a quiet message (shown even in quiet mode).
-
#success(message, context = {}) ⇒ void
Log a success message.
- #task_start(message, context = {}) ⇒ Object
-
#verbose(message, context = {}) ⇒ void
Log a verbose message (only shown in verbose or debug mode).
-
#warn(message, context = {}) ⇒ void
Log a warning message.
Constructor Details
#initialize(sinks: [], level: :info, verbosity: :normal) ⇒ Logger
Initialize the logger with sinks and log level
46 47 48 49 50 51 |
# File 'lib/makit/logging/logger.rb', line 46 def initialize(sinks: [], level: :info, verbosity: :normal) @sinks = sinks @level = level @verbosity = verbosity @logged_tasks = Set.new end |
Instance Attribute Details
#level ⇒ Symbol (readonly)
Returns minimum log level for filtering.
37 38 39 |
# File 'lib/makit/logging/logger.rb', line 37 def level @level end |
#sinks ⇒ Array<Sinks::Base> (readonly)
Returns list of sinks to process log requests.
35 36 37 |
# File 'lib/makit/logging/logger.rb', line 35 def sinks @sinks end |
#verbosity ⇒ Symbol (readonly)
Returns current verbosity level.
39 40 41 |
# File 'lib/makit/logging/logger.rb', line 39 def verbosity @verbosity end |
Instance Method Details
#config ⇒ Hash
Get logger configuration
154 155 156 157 158 159 160 |
# File 'lib/makit/logging/logger.rb', line 154 def config { level: @level, sinks_count: @sinks.length, sinks: @sinks.map(&:config), } end |
#debug(message, context = {}) ⇒ void
This method returns an undefined value.
Log a debug message
109 110 111 |
# File 'lib/makit/logging/logger.rb', line 109 def debug(, context = {}) log(:debug, , context) end |
#error(message, context = {}) ⇒ void
This method returns an undefined value.
Log an error message
91 92 93 |
# File 'lib/makit/logging/logger.rb', line 91 def error(, context = {}) log(:error, , context) end |
#fatal(message, context = {}) ⇒ void
This method returns an undefined value.
Log a fatal message
118 119 120 |
# File 'lib/makit/logging/logger.rb', line 118 def fatal(, context = {}) log(:fatal, , context) end |
#info(message, context = {}) ⇒ void
This method returns an undefined value.
Log an info message
73 74 75 |
# File 'lib/makit/logging/logger.rb', line 73 def info(, context = {}) log(:info, , context) end |
#log(level, message, context = {}, verbosity: :normal) ⇒ void
This method returns an undefined value.
Log a message with the specified level
60 61 62 63 64 65 66 |
# File 'lib/makit/logging/logger.rb', line 60 def log(level, , context = {}, verbosity: :normal) return unless should_log?(level) return unless should_show_verbosity?(verbosity) log_request = LogRequest.new(level, , context, verbosity: verbosity) execute_sinks(log_request) end |
#quiet(message, context = {}) ⇒ void
This method returns an undefined value.
Log a quiet message (shown even in quiet mode)
136 137 138 |
# File 'lib/makit/logging/logger.rb', line 136 def quiet(, context = {}) log(:info, , context, verbosity: :quiet) end |
#success(message, context = {}) ⇒ void
This method returns an undefined value.
Log a success message
82 83 84 |
# File 'lib/makit/logging/logger.rb', line 82 def success(, context = {}) log(:success, , context) end |
#task_start(message, context = {}) ⇒ Object
140 141 142 143 144 145 146 147 148 149 |
# File 'lib/makit/logging/logger.rb', line 140 def task_start(, context = {}) return if @logged_tasks.include?() @logged_tasks.add() # Format task name with colon prefix and bold white styling = ": #{}".colorize(:white).bold # Add special context to identify task messages task_context = context.merge(task_message: true) log(:info, , task_context) end |
#verbose(message, context = {}) ⇒ void
This method returns an undefined value.
Log a verbose message (only shown in verbose or debug mode)
127 128 129 |
# File 'lib/makit/logging/logger.rb', line 127 def verbose(, context = {}) log(:info, , context, verbosity: :verbose) end |
#warn(message, context = {}) ⇒ void
This method returns an undefined value.
Log a warning message
100 101 102 |
# File 'lib/makit/logging/logger.rb', line 100 def warn(, context = {}) log(:warn, , context) end |