Class: Appsignal::EventFormatter
- Defined in:
- lib/appsignal/event_formatter.rb,
lib/appsignal/event_formatter/rom/sql_formatter.rb,
lib/appsignal/event_formatter/sequel/sql_formatter.rb,
lib/appsignal/event_formatter/faraday/request_formatter.rb,
lib/appsignal/event_formatter/active_record/sql_formatter.rb,
lib/appsignal/event_formatter/action_view/render_formatter.rb,
lib/appsignal/event_formatter/elastic_search/search_formatter.rb,
lib/appsignal/event_formatter/view_component/render_formatter.rb,
lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter.rb,
lib/appsignal/event_formatter/active_record/instantiation_formatter.rb
Overview
Keeps track of formatters for types event that we can use to get the title and body of an event. Formatters should inherit from this class and implement a format(payload) method which returns an array with the title and body.
When implementing a formatter remember that it cannot keep separate state per event, the same object will be called intermittently in a threaded environment. So only keep global configuration as state and pass the payload around as an argument if you need to use helper methods.
Constant Summary collapse
- DEFAULT =
0- SQL_BODY_FORMAT =
1
Class Method Summary collapse
-
.register(name, formatter = nil) ⇒ void
Registers an event formatter for a specific event name.
-
.registered?(name, klass = nil) ⇒ Boolean
Checks if an event formatter is registered for a specific event name.
-
.unregister(name, formatter = self) ⇒ void
Unregisters an event formatter for a specific event name.
Class Method Details
.register(name, formatter = nil) ⇒ void
This method returns an undefined value.
Registers an event formatter for a specific event name.
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/appsignal/event_formatter.rb', line 42 def register(name, formatter = nil) if registered?(name, formatter) logger.warn( "Formatter for '#{name}' already registered, not registering " \ "'#{formatter.name}'" ) return end initialize_formatter name, formatter end |
.registered?(name, klass = nil) ⇒ Boolean
Checks if an event formatter is registered for a specific event name.
80 81 82 83 84 85 86 |
# File 'lib/appsignal/event_formatter.rb', line 80 def registered?(name, klass = nil) if klass formatter_classes[name] == klass else formatter_classes.include?(name) end end |
.unregister(name, formatter = self) ⇒ void
This method returns an undefined value.
Unregisters an event formatter for a specific event name.
65 66 67 68 69 70 |
# File 'lib/appsignal/event_formatter.rb', line 65 def unregister(name, formatter = self) return unless formatter_classes[name] == formatter formatter_classes.delete(name) formatters.delete(name) end |