logstasher 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/logstasher.rb +7 -5
- data/lib/logstasher/action_view/log_subscriber.rb +3 -1
- data/lib/logstasher/active_job/log_subscriber.rb +10 -10
- data/lib/logstasher/active_record/log_subscriber.rb +4 -2
- data/lib/logstasher/active_support/log_subscriber.rb +4 -6
- data/lib/logstasher/active_support/mailer_log_subscriber.rb +3 -1
- data/lib/logstasher/custom_fields.rb +2 -0
- data/lib/logstasher/device/redis.rb +3 -1
- data/lib/logstasher/event.rb +2 -0
- data/lib/logstasher/rails_ext/action_controller/base.rb +2 -0
- data/lib/logstasher/rails_ext/action_controller/metal/instrumentation.rb +2 -0
- data/lib/logstasher/rails_ext/rack/logger.rb +2 -0
- data/lib/logstasher/railtie.rb +5 -3
- data/lib/logstasher/version.rb +3 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33158a121af27be0e9bd17ac2c3e9ac3e40823a52db857ad9954d370d339eb63
|
4
|
+
data.tar.gz: cf62d43543a0b3b6948c1c29233c5eedfd21188f9f0cb6f98fdf9276f933b54f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f403b9a4d329f51c981ed6b57ab1ff2e6ef4ecc58f0943c59eb6d136b9cbdda39d8a904f02511258972fb99597a66ff75a8f53ac17906e837867400a83d66d7
|
7
|
+
data.tar.gz: 57e572d794e472c73496f163023b3f61379998d0e80a4e9cc73d7c37fbbbf2a1999dd53697b897e0a8034d6362184cd86020162409406ecfd68716014bda9bf0
|
data/lib/logstasher.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'logstasher/version'
|
2
4
|
require 'logstasher/active_support/log_subscriber'
|
3
5
|
require 'logstasher/active_support/mailer_log_subscriber'
|
@@ -109,8 +111,8 @@ module LogStasher
|
|
109
111
|
self.logger = config.logger || new_logger(logger_path)
|
110
112
|
logger.level = config.log_level || Logger::WARN
|
111
113
|
self.source = config.source unless config.source.nil?
|
112
|
-
self.log_controller_parameters =
|
113
|
-
self.backtrace =
|
114
|
+
self.log_controller_parameters = !config.log_controller_parameters.nil?
|
115
|
+
self.backtrace = !config.backtrace.nil? unless config.backtrace.nil?
|
114
116
|
set_data_for_rake
|
115
117
|
set_data_for_console
|
116
118
|
self.field_renaming = Hash(config.field_renaming)
|
@@ -125,7 +127,7 @@ module LogStasher
|
|
125
127
|
end
|
126
128
|
|
127
129
|
def called_as_rake?
|
128
|
-
File.basename($
|
130
|
+
File.basename($PROGRAM_NAME) == 'rake'
|
129
131
|
end
|
130
132
|
|
131
133
|
def called_as_console?
|
@@ -160,7 +162,7 @@ module LogStasher
|
|
160
162
|
# LogStasher.info("message", timing:1234)
|
161
163
|
# LogStasher.info(custom1:"yes", custom2:"no")
|
162
164
|
def log(severity, message, additional_fields = {})
|
163
|
-
if logger
|
165
|
+
if logger&.send("#{severity}?")
|
164
166
|
|
165
167
|
data = { 'level' => severity }
|
166
168
|
if message.respond_to?(:to_hash)
|
@@ -173,7 +175,7 @@ module LogStasher
|
|
173
175
|
tags = Array(additional_fields.delete(:tags) || 'log')
|
174
176
|
|
175
177
|
data.merge!(additional_fields)
|
176
|
-
logger << build_logstash_event(data, tags).to_json
|
178
|
+
logger << "#{build_logstash_event(data, tags).to_json}\n"
|
177
179
|
|
178
180
|
end
|
179
181
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support/notifications'
|
2
4
|
require 'action_view/log_subscriber'
|
3
5
|
require 'logstasher/custom_fields'
|
@@ -31,7 +33,7 @@ module LogStasher
|
|
31
33
|
|
32
34
|
tags = []
|
33
35
|
tags.push('exception') if data[:exception]
|
34
|
-
logger << LogStasher.build_logstash_event(data, tags).to_json
|
36
|
+
logger << "#{LogStasher.build_logstash_event(data, tags).to_json}\n"
|
35
37
|
end
|
36
38
|
|
37
39
|
def extract_data(data)
|
@@ -1,18 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# For Rails 6.0 or below, require the logging module which contains LogSubscriber
|
2
|
-
if ActiveJob::VERSION::MAJOR < 6 || (ActiveJob::VERSION::MAJOR == 6 && ActiveJob::VERSION::MINOR
|
3
|
-
require 'active_job/logging'
|
4
|
+
if ActiveJob::VERSION::MAJOR < 6 || (ActiveJob::VERSION::MAJOR == 6 && ActiveJob::VERSION::MINOR.zero?)
|
5
|
+
require 'active_job/logging'
|
4
6
|
else
|
5
7
|
require 'active_job/log_subscriber'
|
6
8
|
end
|
7
9
|
|
8
10
|
module LogStasher
|
9
11
|
module ActiveJob
|
10
|
-
|
11
12
|
BASE_SUBSCRIBER = if defined?(::ActiveJob::LogSubscriber)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
::ActiveJob::LogSubscriber
|
14
|
+
else
|
15
|
+
::ActiveJob::Logging::LogSubscriber
|
16
|
+
end
|
16
17
|
|
17
18
|
class LogSubscriber < BASE_SUBSCRIBER
|
18
19
|
def enqueue(event)
|
@@ -61,7 +62,7 @@ module LogStasher
|
|
61
62
|
|
62
63
|
tags = ['job', type]
|
63
64
|
tags.push('exception') if data[:exception]
|
64
|
-
logger << LogStasher.build_logstash_event(data, tags).to_json
|
65
|
+
logger << "#{LogStasher.build_logstash_event(data, tags).to_json}\n"
|
65
66
|
end
|
66
67
|
|
67
68
|
def extract_metadata(event)
|
@@ -91,9 +92,8 @@ module LogStasher
|
|
91
92
|
|
92
93
|
# The default args_info makes a string. We need objects to turn into JSON.
|
93
94
|
def args_info(job)
|
94
|
-
job.arguments
|
95
|
+
::ActiveJob::Arguments.serialize(job.arguments)
|
95
96
|
end
|
96
97
|
end
|
97
98
|
end
|
98
99
|
end
|
99
|
-
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support/notifications'
|
2
4
|
require 'active_record/log_subscriber'
|
3
5
|
require 'logstasher/custom_fields'
|
@@ -9,7 +11,7 @@ module LogStasher
|
|
9
11
|
|
10
12
|
def identity(event)
|
11
13
|
lsevent = logstash_event(event)
|
12
|
-
logger << lsevent.to_json
|
14
|
+
logger << "#{lsevent.to_json}\n" if logger && lsevent
|
13
15
|
end
|
14
16
|
alias sql identity
|
15
17
|
|
@@ -23,7 +25,7 @@ module LogStasher
|
|
23
25
|
self.class.runtime += event.duration
|
24
26
|
data = event.payload.dup
|
25
27
|
|
26
|
-
return if
|
28
|
+
return if data[:name] == 'SCHEMA'
|
27
29
|
|
28
30
|
# A connection cannot be converted to JSON as it fails with
|
29
31
|
# SystemStackError when running against ActiveSupport JSON patches.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support/core_ext/class/attribute'
|
2
4
|
require 'active_support/log_subscriber'
|
3
5
|
require 'logstasher/custom_fields'
|
@@ -20,7 +22,7 @@ module LogStasher
|
|
20
22
|
|
21
23
|
tags = ['request']
|
22
24
|
tags.push('exception') if payload[:exception]
|
23
|
-
logger << LogStasher.build_logstash_event(data, tags).to_json
|
25
|
+
logger << "#{LogStasher.build_logstash_event(data, tags).to_json}\n"
|
24
26
|
end
|
25
27
|
|
26
28
|
def redirect_to(event)
|
@@ -48,11 +50,7 @@ module LogStasher
|
|
48
50
|
end
|
49
51
|
|
50
52
|
def extract_format(payload)
|
51
|
-
|
52
|
-
payload[:formats].first
|
53
|
-
else
|
54
|
-
payload[:format]
|
55
|
-
end
|
53
|
+
payload[:format]
|
56
54
|
end
|
57
55
|
|
58
56
|
def extract_status(payload)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support/core_ext/class/attribute'
|
2
4
|
require 'active_support/log_subscriber'
|
3
5
|
|
@@ -31,7 +33,7 @@ module LogStasher
|
|
31
33
|
|
32
34
|
def process_event(event, tags)
|
33
35
|
data = LogStasher.request_context.merge(extract_metadata(event.payload))
|
34
|
-
logger << LogStasher.build_logstash_event(data, tags).to_json
|
36
|
+
logger << "#{LogStasher.build_logstash_event(data, tags).to_json}\n"
|
35
37
|
end
|
36
38
|
|
37
39
|
def extract_metadata(payload)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'redis'
|
2
4
|
|
3
5
|
module LogStasher
|
@@ -22,7 +24,7 @@ module LogStasher
|
|
22
24
|
def redis_options
|
23
25
|
unless @redis_options
|
24
26
|
default_keys = default_options.keys
|
25
|
-
@redis_options = options.
|
27
|
+
@redis_options = options.reject { |k, _v| default_keys.include?(k) }
|
26
28
|
end
|
27
29
|
|
28
30
|
@redis_options
|
data/lib/logstasher/event.rb
CHANGED
data/lib/logstasher/railtie.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails/railtie'
|
2
4
|
require 'action_view/log_subscriber'
|
3
5
|
require 'action_controller/log_subscriber'
|
@@ -20,7 +22,7 @@ module LogStasher
|
|
20
22
|
config_file = File.expand_path './config/logstasher.yml'
|
21
23
|
|
22
24
|
# Load and ERB templating of YAML files
|
23
|
-
LOGSTASHER = File.exist?(config_file) ? YAML.
|
25
|
+
LOGSTASHER = File.exist?(config_file) ? YAML.safe_load(ERB.new(File.read(config_file)).result).symbolize_keys : nil
|
24
26
|
|
25
27
|
initializer :logstasher, before: :load_config_initializers do |app|
|
26
28
|
if LOGSTASHER.present?
|
@@ -42,7 +44,7 @@ module LogStasher
|
|
42
44
|
end
|
43
45
|
|
44
46
|
def rack_cache_hashlike?(app)
|
45
|
-
app.config.action_dispatch.rack_cache
|
47
|
+
app.config.action_dispatch.rack_cache&.respond_to?(:[]=)
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
@@ -55,7 +57,7 @@ module LogStasher
|
|
55
57
|
# get all available IP address lists and use the first one.
|
56
58
|
# This will always be `127.0.0.1`.
|
57
59
|
address_info = Socket.ip_address_list.first
|
58
|
-
address_info
|
60
|
+
address_info&.ip_address
|
59
61
|
else
|
60
62
|
IPSocket.getaddress(Socket.gethostname)
|
61
63
|
end
|
data/lib/logstasher/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstasher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shadab Ahmed
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
120
|
- !ruby/object:Gem::Version
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
|
-
rubygems_version: 3.
|
123
|
+
rubygems_version: 3.1.4
|
124
124
|
signing_key:
|
125
125
|
specification_version: 4
|
126
126
|
summary: Awesome rails logs
|