logstasher 0.4.1 → 0.4.5
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 +8 -8
- data/lib/logstasher.rb +26 -21
- data/lib/logstasher/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MDA5MTJiNzE4OTM1OGI3MmMzNzk4ZWRhNWQzNDE3NmI5NzNkYWUyNw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTE1NDBhZjAxYzVkNjQ5N2IyZTU0ODczOWZjZjgxNzUwMzE4ZDgxNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTk5NjhiNzNkOWViYWNjYjdlNWY1MTdkZDgwZDEyNDRmMDBlOGFjMTY0Nzdl
|
10
|
+
NTlmMzhjODc1ZWVlMDhiYzExZjNlZjEzMGY1NGVlYzk4YzYzMjgxNmYzY2Y0
|
11
|
+
ZjhhZDY0MTZhOTEwZGI2MDllZDFjNDk0ZDQ5ODZkZTE0YzMxZTM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzZjYzQzMTY0ODM0MzBmNGQ0NmJiOTJhZDVlNzViOWM1ODk4NmY3YWY0NzE1
|
14
|
+
NGU3YzBhOTRmMDBkMTA1Y2MxYzNkNmNkNWM0ZTkyNjc1YmRjODliYTg0NDY3
|
15
|
+
YmYzNTU4YzcxMjQzYzFjYzg4ZGFkOTg5NTczN2VjZWM1ZDkwODg=
|
data/lib/logstasher.rb
CHANGED
@@ -5,10 +5,10 @@ require 'active_support/core_ext/string/inflections'
|
|
5
5
|
require 'active_support/ordered_options'
|
6
6
|
|
7
7
|
module LogStasher
|
8
|
-
|
9
|
-
|
8
|
+
extend self
|
9
|
+
attr_accessor :logger, :enabled
|
10
10
|
|
11
|
-
def
|
11
|
+
def remove_existing_log_subscriptions
|
12
12
|
ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
|
13
13
|
case subscriber
|
14
14
|
when ActionView::LogSubscriber
|
@@ -19,7 +19,7 @@ module LogStasher
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
22
|
+
def unsubscribe(component, subscriber)
|
23
23
|
events = subscriber.public_methods(false).reject{ |method| method.to_s == 'call' }
|
24
24
|
events.each do |event|
|
25
25
|
ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{component}").each do |listener|
|
@@ -30,66 +30,71 @@ module LogStasher
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def add_default_fields_to_payload(payload, request)
|
34
34
|
payload[:ip] = request.remote_ip
|
35
35
|
payload[:route] = "#{request.params[:controller]}##{request.params[:action]}"
|
36
36
|
payload[:parameters] = payload[:params].except(*ActionController::LogSubscriber::INTERNAL_PARAMS)
|
37
37
|
self.custom_fields += [:ip, :route, :parameters]
|
38
38
|
end
|
39
39
|
|
40
|
-
def
|
40
|
+
def add_custom_fields(&block)
|
41
41
|
ActionController::Metal.send(:define_method, :logtasher_add_custom_fields_to_payload, &block)
|
42
42
|
ActionController::Base.send(:define_method, :logtasher_add_custom_fields_to_payload, &block)
|
43
43
|
end
|
44
44
|
|
45
|
-
def
|
45
|
+
def setup(app)
|
46
46
|
app.config.action_dispatch.rack_cache[:verbose] = false if app.config.action_dispatch.rack_cache
|
47
47
|
# Path instrumentation class to insert our hook
|
48
48
|
require 'logstasher/rails_ext/action_controller/metal/instrumentation'
|
49
49
|
require 'logstash-event'
|
50
50
|
self.suppress_app_logs(app)
|
51
51
|
LogStasher::RequestLogSubscriber.attach_to :action_controller
|
52
|
-
self.logger = app.config.logstasher.logger ||
|
52
|
+
self.logger = app.config.logstasher.logger || new_logger("#{Rails.root}/log/logstash_#{Rails.env}.log")
|
53
53
|
self.logger.level = app.config.logstasher.log_level || Logger::WARN
|
54
54
|
self.enabled = true
|
55
55
|
end
|
56
56
|
|
57
|
-
def
|
57
|
+
def suppress_app_logs(app)
|
58
58
|
if configured_to_suppress_app_logs?(app)
|
59
59
|
require 'logstasher/rails_ext/rack/logger'
|
60
60
|
LogStasher.remove_existing_log_subscriptions
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
def
|
64
|
+
def configured_to_suppress_app_logs?(app)
|
65
65
|
# This supports both spellings: "suppress_app_log" and "supress_app_log"
|
66
66
|
!!(app.config.logstasher.suppress_app_log.nil? ? app.config.logstasher.supress_app_log : app.config.logstasher.suppress_app_log)
|
67
67
|
end
|
68
68
|
|
69
|
-
def
|
69
|
+
def custom_fields
|
70
70
|
Thread.current[:logstasher_custom_fields] ||= []
|
71
71
|
end
|
72
72
|
|
73
|
-
def
|
73
|
+
def custom_fields=(val)
|
74
74
|
Thread.current[:logstasher_custom_fields] = val
|
75
75
|
end
|
76
76
|
|
77
77
|
|
78
|
-
def
|
78
|
+
def log(severity, msg)
|
79
79
|
if self.logger && self.logger.send("#{severity}?")
|
80
80
|
event = LogStash::Event.new('@fields' => {:message => msg, :level => severity},'@tags' => ['log'])
|
81
81
|
self.logger.send severity, event.to_json
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
85
|
+
%w( fatal error warn info debug unknown ).each do |severity|
|
86
|
+
eval <<-EOM, nil, __FILE__, __LINE__ + 1
|
87
|
+
def #{severity}(msg)
|
88
|
+
self.log(:#{severity}, msg)
|
89
|
+
end
|
90
|
+
EOM
|
91
|
+
end
|
92
|
+
|
93
|
+
private
|
94
|
+
|
95
|
+
def new_logger(path)
|
96
|
+
FileUtils.touch path # prevent autocreate messages in log
|
97
|
+
Logger.new path
|
93
98
|
end
|
94
99
|
end
|
95
100
|
|
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: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shadab Ahmed
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstash-event
|