Class: SemanticLogger::Appender::Elasticsearch
- Inherits:
-
Http
- Object
- Base
- Subscriber
- Http
- SemanticLogger::Appender::Elasticsearch
- Defined in:
- lib/semantic_logger/appender/elasticsearch.rb
Overview
)
Instance Attribute Summary collapse
-
#index ⇒ Object
Returns the value of attribute index.
-
#type ⇒ Object
Returns the value of attribute type.
Attributes inherited from Http
#application, #compress, #continue_timeout, #header, #host, #http, #open_timeout, #path, #port, #read_timeout, #server, #ssl_options, #url, #username
Attributes inherited from Subscriber
#application, #formatter, #host
Attributes inherited from Base
Instance Method Summary collapse
-
#delete_all(date = Date.today) ⇒ Object
Deletes all log data captured for a day.
-
#initialize(options, &block) ⇒ Elasticsearch
constructor
Create Elasticsearch appender over persistent HTTP(S).
-
#log(log) ⇒ Object
Log to the index for today.
Methods inherited from Http
Methods inherited from Subscriber
#close, #default_formatter, #flush, #level
Methods inherited from Base
#fast_tag, #level, #level=, #measure, #payload, #pop_tags, #push_tags, #silence, #tagged, #tags, #with_payload
Constructor Details
#initialize(options, &block) ⇒ Elasticsearch
Create Elasticsearch appender over persistent HTTP(S)
Parameters:
index: [String]
Prefix of the index to store the logs in Elasticsearch.
The final index appends the date so that indexes are used per day.
I.e. The final index will look like 'semantic_logger-YYYY.MM.DD'
Default: 'semantic_logger'
type: [String]
Document type to associate with logs when they are written.
Default: 'log'
level: [:trace | :debug | :info | :warn | :error | :fatal]
Override the log level for this appender.
Default: SemanticLogger.default_level
formatter: [Object|Proc|Symbol|Hash]
An instance of a class that implements #call, or a Proc to be used to format
the output from this appender
Default: Use the built-in formatter (See: #call)
filter: [Regexp|Proc]
RegExp: Only include log messages where the class name matches the supplied.
regular expression. All other messages will be ignored.
Proc: Only include log messages where the supplied Proc returns true
The Proc must return true or false.
host: [String]
Name of this host to appear in log messages.
Default: SemanticLogger.host
application: [String]
Name of this application to appear in log messages.
Default: SemanticLogger.application
47 48 49 50 51 52 53 54 |
# File 'lib/semantic_logger/appender/elasticsearch.rb', line 47 def initialize(, &block) = .dup @index = .delete(:index) || 'semantic_logger' @type = .delete(:type) || 'log' [:url] ||= 'http://localhost:9200' super(, &block) end |
Instance Attribute Details
#index ⇒ Object
Returns the value of attribute index.
10 11 12 |
# File 'lib/semantic_logger/appender/elasticsearch.rb', line 10 def index @index end |
#type ⇒ Object
Returns the value of attribute type.
10 11 12 |
# File 'lib/semantic_logger/appender/elasticsearch.rb', line 10 def type @type end |
Instance Method Details
#delete_all(date = Date.today) ⇒ Object
Deletes all log data captured for a day
64 65 66 |
# File 'lib/semantic_logger/appender/elasticsearch.rb', line 64 def delete_all(date = Date.today) "#{index}-#{date.strftime('%Y.%m.%d')}/#{type}" end |
#log(log) ⇒ Object
Log to the index for today
57 58 59 60 61 |
# File 'lib/semantic_logger/appender/elasticsearch.rb', line 57 def log(log) return false unless should_log?(log) post(formatter.call(log, self), "#{index}-#{log.time.strftime('%Y.%m.%d')}/#{type}") end |