Class: SemanticLogger::Subscriber

Inherits:
Base
  • Object
show all
Defined in:
lib/semantic_logger/subscriber.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#filter, #name

Instance Method Summary collapse

Methods inherited from Base

#backtrace, #fast_tag, #level=, #log, #measure, #named_tags, #payload, #pop_tags, #push_tags, #silence, #tagged, #tags, #with_payload

Instance Attribute Details

#applicationObject

Allow application name to be set globally or on a per subscriber basis.



31
32
33
# File 'lib/semantic_logger/subscriber.rb', line 31

def application
  @application || SemanticLogger.application
end

#formatterObject

Every appender has its own formatter



7
8
9
# File 'lib/semantic_logger/subscriber.rb', line 7

def formatter
  @formatter
end

#hostObject

Allow host name to be set globally or on a per subscriber basis.



36
37
38
# File 'lib/semantic_logger/subscriber.rb', line 36

def host
  @host || SemanticLogger.host
end

#loggerObject

Give each appender its own logger for logging. For example trace messages sent to services or errors when something fails.



42
43
44
45
46
47
48
# File 'lib/semantic_logger/subscriber.rb', line 42

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

Parameters:

  • value

    the value to set the attribute metrics to.



8
9
10
# File 'lib/semantic_logger/subscriber.rb', line 8

def metrics=(value)
  @metrics = value
end

Instance Method Details

#closeObject

A subscriber should implement close if it can.



21
22
23
# File 'lib/semantic_logger/subscriber.rb', line 21

def close
  # NOOP
end

#default_formatterObject

Returns [SemanticLogger::Formatters::Default] default formatter for this subscriber.



26
27
28
# File 'lib/semantic_logger/subscriber.rb', line 26

def default_formatter
  SemanticLogger::Formatters::Default.new
end

#flushObject

A subscriber should implement flush if it can.



16
17
18
# File 'lib/semantic_logger/subscriber.rb', line 16

def flush
  # NOOP
end

#levelObject

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

#should_log?(log) ⇒ Boolean

Whether this log entry meets the criteria to be logged by this appender.

Returns:

  • (Boolean)


61
62
63
# File 'lib/semantic_logger/subscriber.rb', line 61

def should_log?(log)
  super(log) && (log.metric_only? ? metrics? : true)
end