Class: Loggerstash
- Inherits:
-
Object
- Object
- Loggerstash
- Defined in:
- lib/loggerstash.rb
Overview
A sidecar class to augment a Logger with super-cow-logstash-forwarding powers.
Defined Under Namespace
Modules: Mixin Classes: AlreadyRunningError, Error
Instance Method Summary collapse
-
#attach(obj) ⇒ Object
Associate this Loggerstash with a Logger (or class of Loggers).
-
#initialize(logstash_server:, metrics_registry: nil, formatter: nil, logstash_writer: nil, logger: nil) ⇒ Loggerstash
constructor
A new Loggerstash!.
Constructor Details
#initialize(logstash_server:, metrics_registry: nil, formatter: nil, logstash_writer: nil, logger: nil) ⇒ Loggerstash
A new Loggerstash!
42 43 44 45 46 47 48 49 50 |
# File 'lib/loggerstash.rb', line 42 def initialize(logstash_server:, metrics_registry: nil, formatter: nil, logstash_writer: nil, logger: nil) @logstash_server = logstash_server @metrics_registry = metrics_registry @formatter = formatter @logstash_writer = logstash_writer @logger = logger @op_mutex = Mutex.new end |
Instance Method Details
#attach(obj) ⇒ Object
Associate this Loggerstash with a Logger (or class of Loggers).
A single Loggerstash instance can be associated with one or more Logger objects, or all instances of Logger, by attaching the Loggerstash to the other object (or class). Attaching a Loggerstash means it can no longer be configured (by the setter methods).
63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/loggerstash.rb', line 63 def attach(obj) run_writer @op_mutex.synchronize do obj.instance_variable_set(:@logstash_writer, @logstash_writer) obj.instance_variable_set(:@loggerstash_formatter, @formatter) if obj.is_a?(Module) obj.prepend(Mixin) else obj.singleton_class.prepend(Mixin) end end end |