class SemanticLogger::Appender::ElasticsearchHttp
Attributes
index[RW]
type[RW]
Public Class Methods
new(index: "semantic_logger", type: "log", url: "http://localhost:9200", **http_args, &block)
click to toggle source
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
Calls superclass method
SemanticLogger::Appender::Http::new
# File lib/semantic_logger/appender/elasticsearch_http.rb, line 53 def initialize(index: "semantic_logger", type: "log", url: "http://localhost:9200", **http_args, &block) @index = index @type = type super(url: url, **http_args, &block) @request_path = "#{@path.end_with?('/') ? @path : "#{@path}/"}#{@index}-%Y.%m.%d" @logging_path = "#{@request_path}/#{type}" end
Public Instance Methods
delete_all(date = Date.today)
click to toggle source
Deletes all log data captured for a day.
# File lib/semantic_logger/appender/elasticsearch_http.rb, line 73 def delete_all(date = Date.today) delete(date.strftime(@request_path)) end
log(log)
click to toggle source
Log
to the index for today.
# File lib/semantic_logger/appender/elasticsearch_http.rb, line 68 def log(log) post(formatter.call(log, self), log.time.strftime(@logging_path)) end