request_headers_logger 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 426a124479eca311531e5bfea76dd501c1d18d91
4
- data.tar.gz: 5f0588b3dd89067b276b144a826360511a8bab6d
3
+ metadata.gz: 470b462a8ffc11750785e8efc88d477d2efd61f5
4
+ data.tar.gz: ff88013a271b1c3f21b9b91219007b3b6016a45a
5
5
  SHA512:
6
- metadata.gz: fc35c05ebc50865e5475852bdcdf8d987a90470cb4b3fda32582429b77d0de04e3d7f6c581662b9a64cf32a89856aef90e46fa308f0ae571cbdf670ad783420b
7
- data.tar.gz: 9f683fc2afee57432db86b18fe506e174fb8966467c080c479f57c8dc827d1689357e11f8ecbb2f76c3d6fe894b8318b1346a5abdb90b806a5052a6b9ec85f4e
6
+ metadata.gz: 10084ec99b39e60ff233e5426ba82d6a47f021732dfc09780168cd966fb3940f45672386b92bfc47012212f77c341aa4e6ae74e7c2127d2cb70de6a3caba562d
7
+ data.tar.gz: 83bdd44b690bccf5714590a14984c292efc2006c2d7c37036cab309b5aaa4ed11d0eecf1066ef09de0e37b8342b89d21005a315271036d3b28be26a1b9c299c8
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- request_headers_logger (0.0.2)
4
+ request_headers_logger (0.0.4)
5
5
  request_headers_middleware (~> 0.0.4)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -31,6 +31,16 @@ $ bundle
31
31
  That's it now Delayed job logs should show the *X-Request-Id* from the http request.
32
32
 
33
33
 
34
+ ### Configure RequestHeadersLogger
35
+
36
+ ```
37
+ RequestHeadersLogger.configure do |config|
38
+ config[:logger_format] = 'json' # Options [text json] default: text
39
+ config[:tag_format] = 'key_val' # Options: [val key_val] default: val
40
+ config[:Loggers] << MessageQueue.logger # List of all loggers used.
41
+ end
42
+ ```
43
+
34
44
  ### Whitelist
35
45
 
36
46
  Per default the delayed job plug in applies a whitelist to only filter *X-Request-Id* header from the store. To white list new flags, you can do the following.
@@ -16,8 +16,6 @@ module RequestHeadersLogger # :nodoc:
16
16
 
17
17
  def configure
18
18
  yield @configuration
19
-
20
- prepare_loggers
21
19
  end
22
20
 
23
21
  def tags
@@ -36,16 +34,17 @@ module RequestHeadersLogger # :nodoc:
36
34
  @configuration[:loggers]
37
35
  end
38
36
 
39
- private
40
-
41
37
  def prepare_loggers
42
38
  loggers.each do |logger|
43
39
  logger_formatter logger
44
40
  end
45
41
  end
46
42
 
43
+ private
44
+
47
45
  def logger_formatter(logger)
48
- logger.tap { |obj| obj.formatter = formatter_class.new }
46
+ logger.formatter ||= Logger::Formatter.new
47
+ logger.formatter.extend formatter_class
49
48
  end
50
49
 
51
50
  def formatter_class
@@ -26,8 +26,9 @@ module RequestHeadersLogger
26
26
  loggers = [Delayed::Worker.logger]
27
27
  loggers << ::Rails.logger
28
28
 
29
- config[:loggers] = loggers
29
+ config[:loggers].push(loggers).flatten!.uniq!
30
30
  end
31
+ RequestHeadersLogger.prepare_loggers
31
32
  end
32
33
  end
33
34
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RequestHeadersLogger
4
- class JsonFormatter
4
+ module JsonFormatter
5
5
  def call(severity, timestamp, progname, msg)
6
6
  json = { level: severity, timestamp: timestamp.to_s, message: msg.strip }
7
7
  json = json.merge(progname: progname.to_s) unless progname.nil?
@@ -22,10 +22,10 @@ module RequestHeadersLogger
22
22
  end
23
23
 
24
24
  lifecycle.before(:consume) do |delivery_info, properties, payload|
25
- store = symbolize(properties.headers).dig(:store) || {}
25
+ store = symbolize(properties.headers)&.dig(:store) || {}
26
26
  RequestHeadersMiddleware.store = store
27
27
 
28
- set_dj_loggers
28
+ set_mq_loggers
29
29
  end
30
30
 
31
31
  lifecycle.after(:consume) do |delivery_info, properties, payload|
@@ -33,10 +33,11 @@ module RequestHeadersLogger
33
33
  end
34
34
  end
35
35
 
36
- def self.set_dj_loggers
36
+ def self.set_mq_loggers
37
37
  RequestHeadersLogger.configure do |config|
38
- config[:loggers] = [MessageQueue.logger]
38
+ config[:loggers] << MessageQueue.logger
39
39
  end
40
+ RequestHeadersLogger.prepare_loggers
40
41
  end
41
42
  end
42
43
  end
@@ -1,9 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'English'
4
+
3
5
  module RequestHeadersLogger
4
- class TextFormatter < ::Logger::Formatter
5
- def call(severity, timestamp, progname, msg)
6
- super(severity, timestamp, progname, "#{tags_text}#{msg}")
6
+ module TextFormatter
7
+ def call(severity, time, progname, msg)
8
+ format(::Logger::Formatter::Format,
9
+ severity_name(severity)[0],
10
+ format_datetime(time),
11
+ $PID,
12
+ severity_name(severity),
13
+ progname,
14
+ msg2str("#{tags_text}#{msg}"))
15
+ end
16
+
17
+ def severity_name(severity)
18
+ return Logger::Severity.constants[severity].to_s if severity.is_a?(Integer)
19
+ severity
7
20
  end
8
21
 
9
22
  def tags_text
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RequestHeadersLogger
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.4'
5
5
  end
@@ -9,7 +9,8 @@ RSpec.describe RequestHeadersLogger::JsonFormatter do
9
9
  let(:logger) do
10
10
  logger = Logger.new(buffer)
11
11
  logger.progname = 'dummy'
12
- logger.formatter = RequestHeadersLogger::JsonFormatter.new
12
+ logger.formatter = Logger::Formatter.new
13
+ logger.formatter.extend RequestHeadersLogger::JsonFormatter
13
14
  logger
14
15
  end
15
16
 
@@ -7,7 +7,8 @@ RSpec.describe RequestHeadersLogger::TextFormatter do
7
7
  let(:logger) do
8
8
  logger = Logger.new(buffer)
9
9
  logger.progname = 'dummy'
10
- logger.formatter = RequestHeadersLogger::TextFormatter.new
10
+ logger.formatter = Logger::Formatter.new
11
+ logger.formatter.extend RequestHeadersLogger::TextFormatter
11
12
  logger
12
13
  end
13
14
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: request_headers_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Al-waleed Shihadeh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-28 00:00:00.000000000 Z
11
+ date: 2018-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: request_headers_middleware