Class: SemanticLogger::Subscriber
- Defined in:
- lib/semantic_logger/subscriber.rb
Direct Known Subclasses
Appender::Bugsnag, Appender::Elasticsearch, Appender::File, Appender::Graylog, Appender::Honeybadger, Appender::HoneybadgerInsights, Appender::Http, Appender::IO, Appender::Kafka, Appender::MongoDB, Appender::NewRelic, Appender::NewRelicLogs, 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.
Attributes inherited from Base
Instance Method Summary collapse
-
#close ⇒ Object
A subscriber should implement close if it can.
-
#console_output? ⇒ Boolean
Whether this appender is logging to stdout or stderror.
-
#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.
Methods inherited from Base
#backtrace, #fast_tag, #level=, #measure, #named_tags, #pop_tags, #push_tags, #silence, #tagged, #tags
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
#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 stderror
77 78 79 |
# File 'lib/semantic_logger/subscriber.rb', line 77 def console_output? false 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) && (log.metric_only? ? metrics? : true) end |