Class: Appsignal::Logger
Overview
Logger that flushes logs to the AppSignal logging service.
Instance Attribute Summary collapse
-
#level ⇒ Integer
readonly
Logging severity threshold.
Instance Method Summary collapse
-
#<<(message) ⇒ Integer
Log an info level message.
-
#broadcast_to(logger) ⇒ Array<Logger>
Adds a logger to broadcast log messages to.
-
#debug(message = nil, attributes = {}, &block) ⇒ void
Log a debug level message.
-
#error(message = nil, attributes = {}, &block) ⇒ void
Log an error level message.
-
#fatal(message = nil, attributes = {}, &block) ⇒ void
Log a fatal level message.
-
#formatter=(formatter) ⇒ Proc
Sets the formatter for this logger and all broadcasted loggers.
-
#info(message = nil, attributes = {}, &block) ⇒ void
Log an info level message.
-
#initialize(group, level: INFO, format: AUTODETECT, attributes: {}) ⇒ void
constructor
Create a new logger instance.
-
#silence(severity = ERROR, &block) ⇒ Object
Temporarily silences the logger to a specified level while executing a block.
-
#warn(message = nil, attributes = {}, &block) ⇒ void
Log a warn level message.
Constructor Details
#initialize(group, level: INFO, format: AUTODETECT, attributes: {}) ⇒ void
Create a new logger instance
78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/appsignal/logger.rb', line 78 def initialize(group, level: INFO, format: AUTODETECT, attributes: {}) raise TypeError, "group must be a string" unless group.is_a? String @group = group @level = level @silenced = false @format = format @mutex = Mutex.new @default_attributes = attributes @appsignal_attributes = attributes @loggers = [] end |
Instance Attribute Details
#level ⇒ Integer (readonly)
Logging severity threshold
68 69 70 |
# File 'lib/appsignal/logger.rb', line 68 def level @level end |
Instance Method Details
#<<(message) ⇒ Integer
Log an info level message
Returns the number of characters written.
203 204 205 206 |
# File 'lib/appsignal/logger.rb', line 203 def <<() info() .length end |
#broadcast_to(logger) ⇒ Array<Logger>
Adds a logger to broadcast log messages to.
233 234 235 |
# File 'lib/appsignal/logger.rb', line 233 def broadcast_to(logger) @loggers << logger end |
#debug(message = nil, attributes = {}, &block) ⇒ void
This method returns an undefined value.
Log a debug level message
161 162 163 |
# File 'lib/appsignal/logger.rb', line 161 def debug( = nil, attributes = {}, &block) add_with_attributes(DEBUG, , @group, attributes, &block) end |
#error(message = nil, attributes = {}, &block) ⇒ void
This method returns an undefined value.
Log an error level message
185 186 187 |
# File 'lib/appsignal/logger.rb', line 185 def error( = nil, attributes = {}, &block) add_with_attributes(ERROR, , @group, attributes, &block) end |
#fatal(message = nil, attributes = {}, &block) ⇒ void
This method returns an undefined value.
Log a fatal level message
193 194 195 |
# File 'lib/appsignal/logger.rb', line 193 def fatal( = nil, attributes = {}, &block) add_with_attributes(FATAL, , @group, attributes, &block) end |
#formatter=(formatter) ⇒ Proc
Sets the formatter for this logger and all broadcasted loggers.
94 95 96 97 98 99 |
# File 'lib/appsignal/logger.rb', line 94 def formatter=(formatter) super @loggers.each do |logger| logger.formatter = formatter if logger.respond_to?(:formatter=) end end |
#info(message = nil, attributes = {}, &block) ⇒ void
This method returns an undefined value.
Log an info level message
169 170 171 |
# File 'lib/appsignal/logger.rb', line 169 def info( = nil, attributes = {}, &block) add_with_attributes(INFO, , @group, attributes, &block) end |
#silence(severity = ERROR, &block) ⇒ Object
Temporarily silences the logger to a specified level while executing a block.
When using ActiveSupport::TaggedLogging without the broadcast feature, the passed logger is required to respond to the ‘silence` method.
Reference links:
220 221 222 223 224 225 226 227 228 |
# File 'lib/appsignal/logger.rb', line 220 def silence(severity = ERROR, &block) previous_level = @level @level = severity @silenced = true block.call(self) ensure @level = previous_level @silenced = false end |
#warn(message = nil, attributes = {}, &block) ⇒ void
This method returns an undefined value.
Log a warn level message
177 178 179 |
# File 'lib/appsignal/logger.rb', line 177 def warn( = nil, attributes = {}, &block) add_with_attributes(WARN, , @group, attributes, &block) end |