Class: SemanticLogger::Subscriber
- Inherits:
-
Base
- Object
- Base
- SemanticLogger::Subscriber
- Defined in:
- lib/semantic_logger/subscriber.rb
Direct Known Subclasses
Appender::Bugsnag, Appender::CloudwatchLogs, Appender::ElasticsearchBase, Appender::File, Appender::Graylog, Appender::Honeybadger, Appender::HoneybadgerInsights, Appender::Http, Appender::IO, Appender::Kafka, Appender::MongoDB, Appender::NewRelic, Appender::NewRelicLogs, Appender::OpenTelemetry, Appender::Rabbitmq, Appender::Sentry, Appender::SentryRuby, Appender::Splunk, Appender::Syslog, Appender::Tcp, Appender::Udp, Appender::Wrapper, Metric::NewRelic, Metric::Statsd, Test::CaptureLogEvents
Instance Attribute Summary collapse
-
#application ⇒ Object
Allow application name to be set globally or on a per subscriber basis.
-
#environment ⇒ Object
Allow environment name to be set globally or on a per subscriber basis.
-
#formatter ⇒ Object
Every appender has its own formatter.
-
#host ⇒ Object
Allow host name to be set globally or on a per subscriber basis.
-
#logger ⇒ Object
Give each appender its own logger for logging.
-
#metrics ⇒ Object
writeonly
Sets the attribute metrics.
Instance Method Summary collapse
-
#batch_by_default? ⇒ Boolean
Whether an appender that implements #batch should be wrapped in a batch proxy automatically.
-
#close ⇒ Object
A subscriber should implement close if it can.
-
#console_output? ⇒ Boolean
Whether this appender is logging to stdout or stderr.
-
#console_stream ⇒ Object
The console stream this appender writes to, if any.
-
#default_formatter ⇒ Object
Returns [SemanticLogger::Formatters::Default] default formatter for this subscriber.
-
#flush ⇒ Object
A subscriber should implement flush if it can.
-
#level ⇒ Object
Returns the current log level if set, otherwise it logs everything it receives.
-
#log(log) ⇒ Object
Method called to log an event.
-
#should_log?(log) ⇒ Boolean
Whether this log entry meets the criteria to be logged by this appender.
Instance Attribute Details
#application ⇒ Object
Allow application name to be set globally or on a per subscriber basis.
36 37 38 |
# File 'lib/semantic_logger/subscriber.rb', line 36 def application @application || SemanticLogger.application end |
#environment ⇒ Object
Allow environment name to be set globally or on a per subscriber basis.
41 42 43 |
# File 'lib/semantic_logger/subscriber.rb', line 41 def environment @environment || SemanticLogger.environment end |
#formatter ⇒ Object
Every appender has its own formatter
7 8 9 |
# File 'lib/semantic_logger/subscriber.rb', line 7 def formatter @formatter end |
#host ⇒ Object
Allow host name to be set globally or on a per subscriber basis.
46 47 48 |
# File 'lib/semantic_logger/subscriber.rb', line 46 def host @host || SemanticLogger.host end |
#logger ⇒ Object
Give each appender its own logger for logging. For example trace messages sent to services or errors when something fails.
52 53 54 55 56 57 58 59 |
# File 'lib/semantic_logger/subscriber.rb', line 52 def logger @logger ||= begin logger = SemanticLogger::Processor.logger.clone logger.name = self.class.name logger end end |
#metrics=(value) ⇒ Object (writeonly)
Sets the attribute metrics
8 9 10 |
# File 'lib/semantic_logger/subscriber.rb', line 8 def metrics=(value) @metrics = value end |
Instance Method Details
#batch_by_default? ⇒ Boolean
Whether an appender that implements #batch should be wrapped in a batch
proxy automatically. Appenders that support batching but should only batch
when explicitly requested (via batch: true) override this to return false.
90 91 92 |
# File 'lib/semantic_logger/subscriber.rb', line 90 def batch_by_default? true end |
#close ⇒ Object
A subscriber should implement close if it can.
21 22 23 |
# File 'lib/semantic_logger/subscriber.rb', line 21 def close # NOOP end |
#console_output? ⇒ Boolean
Whether this appender is logging to stdout or stderr.
83 84 85 |
# File 'lib/semantic_logger/subscriber.rb', line 83 def console_output? !console_stream.nil? end |
#console_stream ⇒ Object
The console stream this appender writes to, if any. Returns one of :stdout, :stderr, or nil when not writing to a console stream.
78 79 80 |
# File 'lib/semantic_logger/subscriber.rb', line 78 def console_stream nil end |
#default_formatter ⇒ Object
Returns [SemanticLogger::Formatters::Default] default formatter for this subscriber.
31 32 33 |
# File 'lib/semantic_logger/subscriber.rb', line 31 def default_formatter SemanticLogger::Formatters::Default.new end |
#flush ⇒ Object
A subscriber should implement flush if it can.
16 17 18 |
# File 'lib/semantic_logger/subscriber.rb', line 16 def flush # NOOP end |
#level ⇒ Object
Returns the current log level if set, otherwise it logs everything it receives.
11 12 13 |
# File 'lib/semantic_logger/subscriber.rb', line 11 def level @level || :trace end |
#log(log) ⇒ Object
Method called to log an event
26 27 28 |
# File 'lib/semantic_logger/subscriber.rb', line 26 def log(log) raise NotImplementedError end |
#should_log?(log) ⇒ Boolean
Whether this log entry meets the criteria to be logged by this appender.
72 73 74 |
# File 'lib/semantic_logger/subscriber.rb', line 72 def should_log?(log) super && (log.metric_only? ? metrics? : true) end |