loggerstash 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/lib/loggerstash.rb +15 -0
- metadata +2 -3
- data/lib/filtered_debug_logger.rb +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7457877e4624e0e913b3f57a9dd064bce2476c2
|
4
|
+
data.tar.gz: 384ad7c464d4e7ca58b1625cb72925ddc926a437
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c373e01de7e88ce5ab4674702661c09d7a248f00394c946a74a62dde4868526f3346932ddc87891147fa0a6c536b71ab8a50cf2fcf8647a62a7f99b53c61fdc6
|
7
|
+
data.tar.gz: 1c005e83c7991f52b41c71eed58be40121283d187eac39e7d7ba9da9744f6735097f578e52d5b533bbe6dac3dcc31465738b14767f08bdd359531ce9bc766abf
|
data/.rubocop.yml
CHANGED
data/lib/loggerstash.rb
CHANGED
@@ -139,6 +139,8 @@ class Loggerstash
|
|
139
139
|
#
|
140
140
|
def default_formatter
|
141
141
|
@default_formatter ||= ->(s, t, p, m) do
|
142
|
+
caller = caller_locations.find { |loc| ! [__FILE__, logger_filename].include? loc.absolute_path }
|
143
|
+
|
142
144
|
{
|
143
145
|
"@timestamp": t.utc.strftime("%FT%T.%NZ"),
|
144
146
|
"@metadata": { event_type: "loggerstash" },
|
@@ -146,12 +148,25 @@ class Loggerstash
|
|
146
148
|
severity_name: s.downcase,
|
147
149
|
hostname: Socket.gethostname,
|
148
150
|
pid: $$,
|
151
|
+
caller: {
|
152
|
+
absolute_path: caller.absolute_path,
|
153
|
+
base_label: caller.base_label,
|
154
|
+
label: caller.label,
|
155
|
+
lineno: caller.lineno,
|
156
|
+
path: caller.path,
|
157
|
+
},
|
149
158
|
}.tap do |ev|
|
150
159
|
ev[:progname] = p if p
|
151
160
|
end
|
152
161
|
end
|
153
162
|
end
|
154
163
|
|
164
|
+
# Identify the absolute path of the file that defines the Logger class.
|
165
|
+
#
|
166
|
+
def logger_filename
|
167
|
+
@logger_filename ||= Logger.instance_method(:format_message).source_location.first
|
168
|
+
end
|
169
|
+
|
155
170
|
# The methods needed to turn any Logger into a Loggerstash Logger.
|
156
171
|
#
|
157
172
|
module Mixin
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loggerstash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Palmer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstash_writer
|
@@ -210,7 +210,6 @@ files:
|
|
210
210
|
- CONTRIBUTING.md
|
211
211
|
- LICENCE
|
212
212
|
- README.md
|
213
|
-
- lib/filtered_debug_logger.rb
|
214
213
|
- lib/loggerstash.rb
|
215
214
|
- loggerstash.gemspec
|
216
215
|
homepage: https://github.com/discourse/loggerstash
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'logger'
|
2
|
-
|
3
|
-
# Filter debug-level log entries on progname
|
4
|
-
#
|
5
|
-
# Whilst well-thought-out debug logs are fantastic at showing you the
|
6
|
-
# fine-level detail of your program's execution, they can sometimes be
|
7
|
-
# "too much of a good thing". Excessively verbose debug logs can obscure
|
8
|
-
# the important debug info, and turning on debug logging on a busy service
|
9
|
-
# can quickly swamp all but the most overprovisioned of log aggregation
|
10
|
-
# systems.
|
11
|
-
#
|
12
|
-
# Hence, there's this little module. Require it in your program, and then
|
13
|
-
# set `logger.permitted_prognames = ['some', 'array']` on whatever logger
|
14
|
-
# is likely to want some debug logging. Then, whenever debug logging is
|
15
|
-
# enabled, only those calls to `logger.debug` which provide a progname exactly
|
16
|
-
# matching an entry in the list you provided will actually get logged.
|
17
|
-
#
|
18
|
-
module FilteredDebugLogger
|
19
|
-
# Set the list of prognames to log debug messages for.
|
20
|
-
#
|
21
|
-
# @param l [Array<String>] the (exact) prognames to log debug-level messages
|
22
|
-
# for. If it's not in this list, it doesn't get emitted, even if debug
|
23
|
-
# logging is enabled.
|
24
|
-
#
|
25
|
-
def permitted_prognames=(l)
|
26
|
-
raise ArgumentError, "Must provide an array" unless l.is_a?(Array)
|
27
|
-
|
28
|
-
@permitted_prognames = l
|
29
|
-
end
|
30
|
-
|
31
|
-
# Decorate Logger#add with our "reject by progname" logic.
|
32
|
-
#
|
33
|
-
def add(s, m = nil, p = nil)
|
34
|
-
return if s == Logger::DEBUG && @permitted_prognames && !@permitted_prognames.include?(p)
|
35
|
-
|
36
|
-
super
|
37
|
-
end
|
38
|
-
|
39
|
-
alias log add
|
40
|
-
end
|
41
|
-
|
42
|
-
Logger.prepend(FilteredDebugLogger)
|