Class: EndPointBlank::Writers::LogWriter
- Inherits:
-
Object
- Object
- EndPointBlank::Writers::LogWriter
show all
- Includes:
- DelayedWriter, Shared, Singleton
- Defined in:
- lib/end_point_blank/writers/log_writer.rb
Constant Summary
DelayedWriter::MAX_QUEUE_SIZE, DelayedWriter::WARN_THROTTLE_SECONDS
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Shared
#app_name, #apply_masking, #configuration, #env, #env_name, #request_uuid, #source_application_environment_id
#direct_writer, #enqueue, #log_warning, #pop_additional, #queue, #start_threads
Constructor Details
Returns a new instance of LogWriter.
14
15
16
17
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 14
def initialize
@url = EndPointBlank::Configuration.instance.logs_url
start_threads
end
|
Instance Attribute Details
#url ⇒ Object
Returns the value of attribute url.
12
13
14
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 12
def url
@url
end
|
Class Method Details
.error(message, data = {}) ⇒ Object
27
28
29
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 27
def self.error(message, data = {})
instance.write(message, :error, data)
end
|
.fatal(message, data = {}) ⇒ Object
31
32
33
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 31
def self.fatal(message, data = {})
instance.write(message, :fatal, data)
end
|
.info(message, data = {}) ⇒ Object
19
20
21
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 19
def self.info(message, data = {})
instance.write(message, :info, data)
end
|
.warn(message, data = {}) ⇒ Object
23
24
25
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 23
def self.warn(message, data = {})
instance.write(message, :warn, data)
end
|
.write(message, level, data = {}) ⇒ Object
35
36
37
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 35
def self.write(message, level, data = {})
instance.write(message, level, data)
end
|
Instance Method Details
#payload(message: message, level: level, data: data) ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 39
def payload(message: message, level: level, data: data)
env = ::EndPointBlank::Rack::EnvStore.get
uuid = request_uuid(env)
{
message: message,
log_level: level,
sent_at: Time.now.utc.iso8601(3),
app_name: app_name,
uuid: uuid,
data: data,
source_application_environment_id: source_application_environment_id
}
end
|
#write(message, level, data = {}) ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/end_point_blank/writers/log_writer.rb', line 55
def write(message, level, data = {})
json = payload(message: message, level: level, data: data)
rack_req = ::EndPointBlank::Rack::EnvStore.request
if rack_req
json = json.merge(
stamped_path: rack_req.path,
stamped_http_method: rack_req.request_method
)
end
puts "Writing log: #{json}"
enqueue(json)
end
|