request_headers_logger 0.0.2 → 0.0.4

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 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