request_headers_logger 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -2
- data/lib/request_headers_logger/configuration.rb +46 -0
- data/lib/request_headers_logger/delayed_job/request_header_delayed_plugin.rb +8 -8
- data/lib/request_headers_logger/json_formatter.rb +12 -0
- data/lib/request_headers_logger/message_queue/message_queue.rb +3 -0
- data/lib/request_headers_logger/message_queue/message_queue_plugin.rb +46 -0
- data/lib/request_headers_logger/text_formatter.rb +20 -0
- data/lib/request_headers_logger/version.rb +1 -1
- data/lib/request_headers_logger.rb +32 -14
- data/request_headers_logger.gemspec +1 -2
- data/spec/configuration_spec.rb +65 -0
- data/spec/json_formatter_spec.rb +44 -0
- data/spec/request_headers_logger_spec.rb +7 -32
- data/spec/text_formatter_spec.rb +44 -0
- metadata +14 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 426a124479eca311531e5bfea76dd501c1d18d91
|
4
|
+
data.tar.gz: 5f0588b3dd89067b276b144a826360511a8bab6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc35c05ebc50865e5475852bdcdf8d987a90470cb4b3fda32582429b77d0de04e3d7f6c581662b9a64cf32a89856aef90e46fa308f0ae571cbdf670ad783420b
|
7
|
+
data.tar.gz: 9f683fc2afee57432db86b18fe506e174fb8966467c080c479f57c8dc827d1689357e11f8ecbb2f76c3d6fe894b8318b1346a5abdb90b806a5052a6b9ec85f4e
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RequestHeadersLogger
|
4
|
+
class Configuration
|
5
|
+
class InvalidKey < StandardError
|
6
|
+
def initialize(key)
|
7
|
+
super("Configuration option '#{key.inspect}' is not a valid key")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
CONFIG_KEYS = [
|
12
|
+
:log_format, # [logger_format] default or json
|
13
|
+
:loggers, # [Loggers] List of all loggers used.
|
14
|
+
:tag_format, # [tag_format]
|
15
|
+
].freeze
|
16
|
+
|
17
|
+
LOG_FORMATS = %w[text json].freeze
|
18
|
+
TAG_FORMATS = %w[val key_val].freeze
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
@configs = {
|
22
|
+
log_format: LOG_FORMATS.first,
|
23
|
+
loggers: [],
|
24
|
+
tag_format: TAG_FORMATS.first
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
def []=(key, value)
|
29
|
+
raise InvalidKey, key unless CONFIG_KEYS.include?(key)
|
30
|
+
|
31
|
+
@configs[key] = value
|
32
|
+
end
|
33
|
+
|
34
|
+
def [](key)
|
35
|
+
@configs[key]
|
36
|
+
end
|
37
|
+
|
38
|
+
def log_format
|
39
|
+
LOG_FORMATS.include?(@configs[:log_format]) ? @configs[:log_format] : LOG_FORMATS.first
|
40
|
+
end
|
41
|
+
|
42
|
+
def tag_format
|
43
|
+
TAG_FORMATS.include?(@configs[:tag_format]) ? @configs[:tag_format] : TAG_FORMATS.first
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -13,21 +13,21 @@ module RequestHeadersLogger
|
|
13
13
|
|
14
14
|
lifecycle.before(:perform) do |worker, job|
|
15
15
|
RequestHeadersMiddleware.store = job.payload_object.instance_variable_get(:@store)
|
16
|
-
|
17
|
-
RequestHeadersLogger.tag_logger Delayed::Worker.logger
|
18
|
-
RequestHeadersLogger.tag_logger ::Rails.logger unless dj_use_rails_logger
|
16
|
+
set_dj_loggers
|
19
17
|
end
|
20
18
|
|
21
19
|
lifecycle.after(:perform) do |worker, job|
|
22
|
-
RequestHeadersLogger.untag_logger Delayed::Worker.logger
|
23
|
-
RequestHeadersLogger.untag_logger ::Rails.logger unless dj_use_rails_logger
|
24
|
-
|
25
20
|
RequestHeadersMiddleware.store = {}
|
26
21
|
end
|
27
22
|
end
|
28
23
|
|
29
|
-
def self.
|
30
|
-
|
24
|
+
def self.set_dj_loggers
|
25
|
+
RequestHeadersLogger.configure do |config|
|
26
|
+
loggers = [Delayed::Worker.logger]
|
27
|
+
loggers << ::Rails.logger
|
28
|
+
|
29
|
+
config[:loggers] = loggers
|
30
|
+
end
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RequestHeadersLogger
|
4
|
+
class JsonFormatter
|
5
|
+
def call(severity, timestamp, progname, msg)
|
6
|
+
json = { level: severity, timestamp: timestamp.to_s, message: msg.strip }
|
7
|
+
json = json.merge(progname: progname.to_s) unless progname.nil?
|
8
|
+
|
9
|
+
json.merge(RequestHeadersLogger.tags || {}).to_json + "\n"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'message_queue'
|
4
|
+
|
5
|
+
module RequestHeadersLogger
|
6
|
+
class MQRequestHeadersPlugin < MessageQueue::Plugin
|
7
|
+
class << self
|
8
|
+
def symbolize(obj = {})
|
9
|
+
if obj.is_a? Hash
|
10
|
+
return obj.reduce({}) do |memo, (k, v)|
|
11
|
+
memo.tap { |m| m[k.to_sym] = symbolize(v) }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
obj
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
callbacks do |lifecycle|
|
19
|
+
lifecycle.before(:publish) do |_message, options|
|
20
|
+
options[:headers] ||= {}
|
21
|
+
options[:headers][:store] = RequestHeadersMiddleware.store
|
22
|
+
end
|
23
|
+
|
24
|
+
lifecycle.before(:consume) do |delivery_info, properties, payload|
|
25
|
+
store = symbolize(properties.headers).dig(:store) || {}
|
26
|
+
RequestHeadersMiddleware.store = store
|
27
|
+
|
28
|
+
set_dj_loggers
|
29
|
+
end
|
30
|
+
|
31
|
+
lifecycle.after(:consume) do |delivery_info, properties, payload|
|
32
|
+
RequestHeadersMiddleware.store = {}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.set_dj_loggers
|
37
|
+
RequestHeadersLogger.configure do |config|
|
38
|
+
config[:loggers] = [MessageQueue.logger]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
MessageQueue.configure do |config|
|
45
|
+
config[:plugins] << RequestHeadersLogger::MQRequestHeadersPlugin
|
46
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RequestHeadersLogger
|
4
|
+
class TextFormatter < ::Logger::Formatter
|
5
|
+
def call(severity, timestamp, progname, msg)
|
6
|
+
super(severity, timestamp, progname, "#{tags_text}#{msg}")
|
7
|
+
end
|
8
|
+
|
9
|
+
def tags_text
|
10
|
+
RequestHeadersLogger.tags.collect { |key, val| tag_value(key, val) }.join if RequestHeadersLogger.tags.any?
|
11
|
+
end
|
12
|
+
|
13
|
+
def tag_value(key, value)
|
14
|
+
tag = value.to_s
|
15
|
+
tag = "#{key}: #{tag}" if RequestHeadersLogger.tag_format.eql? 'key_val'
|
16
|
+
|
17
|
+
"[#{tag}] "
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,37 +1,55 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'active_support'
|
4
3
|
require 'request_headers_middleware'
|
4
|
+
require 'request_headers_logger/configuration'
|
5
|
+
require 'request_headers_logger/json_formatter'
|
6
|
+
require 'request_headers_logger/text_formatter'
|
5
7
|
require 'request_headers_logger/delayed_job/delayed_job'
|
8
|
+
require 'request_headers_logger/message_queue/message_queue'
|
6
9
|
|
7
10
|
module RequestHeadersLogger # :nodoc:
|
8
11
|
extend self
|
9
12
|
|
10
13
|
attr_accessor :whitelist
|
11
|
-
@whitelist
|
14
|
+
@whitelist = ['x-request-id'.to_sym]
|
15
|
+
@configuration = Configuration.new
|
16
|
+
|
17
|
+
def configure
|
18
|
+
yield @configuration
|
19
|
+
|
20
|
+
prepare_loggers
|
21
|
+
end
|
12
22
|
|
13
23
|
def tags
|
14
24
|
filter(RequestHeadersMiddleware.store)
|
15
25
|
end
|
16
26
|
|
17
|
-
def
|
18
|
-
|
19
|
-
tags.each do |_tag, value|
|
20
|
-
logger.push_tags(value) unless value.nil?
|
21
|
-
end
|
27
|
+
def log_format
|
28
|
+
@configuration.log_format
|
22
29
|
end
|
23
30
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
31
|
+
def tag_format
|
32
|
+
@configuration.tag_format
|
33
|
+
end
|
34
|
+
|
35
|
+
def loggers
|
36
|
+
@configuration[:loggers]
|
29
37
|
end
|
30
38
|
|
31
39
|
private
|
32
40
|
|
33
|
-
def
|
34
|
-
|
41
|
+
def prepare_loggers
|
42
|
+
loggers.each do |logger|
|
43
|
+
logger_formatter logger
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def logger_formatter(logger)
|
48
|
+
logger.tap { |obj| obj.formatter = formatter_class.new }
|
49
|
+
end
|
50
|
+
|
51
|
+
def formatter_class
|
52
|
+
RequestHeadersLogger.const_get("#{log_format.capitalize}Formatter")
|
35
53
|
end
|
36
54
|
|
37
55
|
def filter(store)
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.email = ['wshihadh@gmail.com']
|
12
12
|
gem.description = 'RequestHeaderLogger Allows you to tag logs with RequestHeader flags.'
|
13
13
|
gem.summary = 'RequestHeaderLogger Allows you to tag logs with RequestHeader flags.'
|
14
|
-
gem.homepage = 'https://github.com/
|
14
|
+
gem.homepage = 'https://github.com/fidor/request_headers_logger'
|
15
15
|
gem.licenses = ['MIT']
|
16
16
|
|
17
17
|
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
@@ -19,7 +19,6 @@ Gem::Specification.new do |gem|
|
|
19
19
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
20
20
|
gem.require_paths = ['lib']
|
21
21
|
|
22
|
-
gem.add_dependency 'activesupport', '> 4.0'
|
23
22
|
gem.add_dependency 'request_headers_middleware', '~> 0.0.4'
|
24
23
|
|
25
24
|
gem.add_development_dependency 'delayed_job', '~> 4.1', '>= 4.1.4'
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe RequestHeadersLogger::Configuration do
|
6
|
+
let(:config) { RequestHeadersLogger::Configuration.new }
|
7
|
+
|
8
|
+
describe '.log_format' do
|
9
|
+
it 'return text as default' do
|
10
|
+
expect(config.log_format).to eq('text')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'return text when log_format is not supported' do
|
14
|
+
config[:log_format] = 'syslog'
|
15
|
+
expect(config.log_format).to eq('text')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'return log_format value when it is supported' do
|
19
|
+
config[:log_format] = 'json'
|
20
|
+
expect(config.log_format).to eq('json')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '.tag_format' do
|
25
|
+
it 'return val as default' do
|
26
|
+
expect(config.tag_format).to eq('val')
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'return val when log_format is not supported' do
|
30
|
+
config[:tag_format] = 'unknwn'
|
31
|
+
expect(config.tag_format).to eq('val')
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'return tag_format value when it is supported' do
|
35
|
+
config[:tag_format] = 'key_val'
|
36
|
+
expect(config.tag_format).to eq('key_val')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '[]' do
|
41
|
+
it 'return text as default for log_format' do
|
42
|
+
expect(config[:log_format]).to eq('text')
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'return empty array as default for loggers' do
|
46
|
+
expect(config[:loggers]).to eq([])
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '[]=' do
|
51
|
+
it 'assign valid config keys' do
|
52
|
+
logger = Logger.new(STDOUT)
|
53
|
+
|
54
|
+
config[:log_format] = 'json'
|
55
|
+
config[:loggers] << logger
|
56
|
+
|
57
|
+
expect(config[:log_format]).to eq('json')
|
58
|
+
expect(config[:loggers].first).to eq(logger)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'raise an error for invalid configs ' do
|
62
|
+
expect { config[:undefined] = 'undefined' }.to raise_error(RequestHeadersLogger::Configuration::InvalidKey)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
RSpec.describe RequestHeadersLogger::JsonFormatter do
|
8
|
+
let(:buffer) { StringIO.new }
|
9
|
+
let(:logger) do
|
10
|
+
logger = Logger.new(buffer)
|
11
|
+
logger.progname = 'dummy'
|
12
|
+
logger.formatter = RequestHeadersLogger::JsonFormatter.new
|
13
|
+
logger
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'output logs in a json format' do
|
17
|
+
logger.info('json log message')
|
18
|
+
json = JSON.parse(buffer.string)
|
19
|
+
|
20
|
+
expect(json.class).to eq Hash
|
21
|
+
expect(json.size).to eq 4
|
22
|
+
expect(json.keys).to eq %w[level timestamp message progname]
|
23
|
+
expect(json['level']).to eq 'INFO'
|
24
|
+
expect(json['message']).to eq 'json log message'
|
25
|
+
expect(json['progname']).to eq 'dummy'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'include tags in the json' do
|
29
|
+
RequestHeadersMiddleware.store = { 'X-Request-Id': 'ef382618', 'tag': 'SSS' }
|
30
|
+
|
31
|
+
logger.info('json log message')
|
32
|
+
json = JSON.parse(buffer.string)
|
33
|
+
|
34
|
+
expect(json.class).to eq Hash
|
35
|
+
expect(json.size).to eq 5
|
36
|
+
expect(json.keys).to eq %w[level timestamp message progname X-Request-Id]
|
37
|
+
expect(json['level']).to eq 'INFO'
|
38
|
+
expect(json['message']).to eq 'json log message'
|
39
|
+
expect(json['progname']).to eq 'dummy'
|
40
|
+
expect(json['X-Request-Id']).to eq 'ef382618'
|
41
|
+
|
42
|
+
RequestHeadersMiddleware.store = {}
|
43
|
+
end
|
44
|
+
end
|
@@ -1,27 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
|
-
require 'active_support'
|
5
4
|
|
6
5
|
RSpec.describe RequestHeadersLogger do
|
7
|
-
let(:logger) {
|
6
|
+
let(:logger) { Logger.new(STDOUT) }
|
8
7
|
|
9
8
|
describe '.tags' do
|
10
|
-
before
|
9
|
+
before do
|
11
10
|
@store = { 'X-Request-Id': 'ef382618-e46d-42f5-aca6-ae9e1db8fee0',
|
12
11
|
'X-Request-Id2': 'e46def38-2618-42f5-ae9e-1db8fee0aca6',
|
13
12
|
'X-Request-Id3': '618e46de-f382-42f5-aca6-8fee0ae9e1db' }
|
13
|
+
RequestHeadersMiddleware.store = @store
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
RequestHeadersMiddleware.store =
|
16
|
+
after do
|
17
|
+
RequestHeadersMiddleware.store = {}
|
18
|
+
end
|
18
19
|
|
20
|
+
it 'return only x-request-id by default' do
|
19
21
|
expect(RequestHeadersLogger.tags.count).to eq(1)
|
20
22
|
expect(RequestHeadersLogger.tags).to eq('X-Request-Id': 'ef382618-e46d-42f5-aca6-ae9e1db8fee0')
|
21
23
|
end
|
22
24
|
|
23
25
|
it 'return empty hash when whitelist is empty' do
|
24
|
-
RequestHeadersMiddleware.store = @store
|
25
26
|
RequestHeadersLogger.whitelist = []
|
26
27
|
|
27
28
|
expect(RequestHeadersLogger.tags.count).to eq(0)
|
@@ -29,7 +30,6 @@ RSpec.describe RequestHeadersLogger do
|
|
29
30
|
end
|
30
31
|
|
31
32
|
it 'return only the white listed flags' do
|
32
|
-
RequestHeadersMiddleware.store = @store
|
33
33
|
RequestHeadersLogger.whitelist = ['x-request-id'.to_sym, 'x-request-id2'.to_sym]
|
34
34
|
|
35
35
|
expect(RequestHeadersLogger.tags.count).to eq(2)
|
@@ -37,29 +37,4 @@ RSpec.describe RequestHeadersLogger do
|
|
37
37
|
expect(RequestHeadersLogger.tags[:'X-Request-Id2']).to eq('e46def38-2618-42f5-ae9e-1db8fee0aca6')
|
38
38
|
end
|
39
39
|
end
|
40
|
-
|
41
|
-
describe '.tag_logger' do
|
42
|
-
it 'tag the logger' do
|
43
|
-
store = { 'X-Request-Id': 'ef382618-e46d-42f5-aca6-ae9e1db8fee0' }
|
44
|
-
RequestHeadersMiddleware.store = store
|
45
|
-
RequestHeadersLogger.tag_logger logger
|
46
|
-
tags = logger.formatter.current_tags
|
47
|
-
|
48
|
-
expect(tags.count).to eq(1)
|
49
|
-
expect(tags.first).to eq(store[:'X-Request-Id'])
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe '.untag_logger' do
|
54
|
-
it 'untag the logger' do
|
55
|
-
store = { 'X-Request-Id': 'ef382618-e46d-42f5-aca6-ae9e1db8fee0' }
|
56
|
-
RequestHeadersMiddleware.store = store
|
57
|
-
RequestHeadersLogger.tag_logger logger
|
58
|
-
RequestHeadersLogger.untag_logger logger
|
59
|
-
tags = logger.formatter.current_tags
|
60
|
-
|
61
|
-
expect(tags.count).to eq(0)
|
62
|
-
expect(tags).to eq([])
|
63
|
-
end
|
64
|
-
end
|
65
40
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe RequestHeadersLogger::TextFormatter do
|
6
|
+
let(:buffer) { StringIO.new }
|
7
|
+
let(:logger) do
|
8
|
+
logger = Logger.new(buffer)
|
9
|
+
logger.progname = 'dummy'
|
10
|
+
logger.formatter = RequestHeadersLogger::TextFormatter.new
|
11
|
+
logger
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'output logs in a text format' do
|
15
|
+
logger.info('text log message')
|
16
|
+
|
17
|
+
expect(buffer.string).to match(/I, \[[0-9\-T:\.# ]*\] INFO -- dummy: text log message$/)
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'store has some tags' do
|
21
|
+
before do
|
22
|
+
RequestHeadersMiddleware.store = { 'X-Request-Id': 'ef382618', 'tag': 'SSS' }
|
23
|
+
end
|
24
|
+
|
25
|
+
after do
|
26
|
+
RequestHeadersMiddleware.store = {}
|
27
|
+
RequestHeadersLogger.configure { |c| c[:tag_format] = 'val' }
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'output tags with key_val formmat' do
|
31
|
+
RequestHeadersLogger.configure { |c| c[:tag_format] = 'key_val' }
|
32
|
+
logger.info('text log message')
|
33
|
+
output = buffer.string
|
34
|
+
|
35
|
+
expect(output).to match(/I, \[[0-9\-T:\.# ]*\] INFO -- dummy: \[X-Request-Id: ef382618\] text log message$/)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'include tags in the log line' do
|
39
|
+
logger.info('text log message')
|
40
|
+
|
41
|
+
expect(buffer.string).to match(/I, \[[0-9\-T:\.# ]*\] INFO -- dummy: \[ef382618\] text log message$/)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: request_headers_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
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-
|
11
|
+
date: 2018-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: activesupport
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '4.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '4.0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: request_headers_middleware
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -165,16 +151,24 @@ files:
|
|
165
151
|
- Rakefile
|
166
152
|
- bin/travis
|
167
153
|
- lib/request_headers_logger.rb
|
154
|
+
- lib/request_headers_logger/configuration.rb
|
168
155
|
- lib/request_headers_logger/delayed_job/delayed_job.rb
|
169
156
|
- lib/request_headers_logger/delayed_job/performable_method.rb
|
170
157
|
- lib/request_headers_logger/delayed_job/request_header_delayed_plugin.rb
|
158
|
+
- lib/request_headers_logger/json_formatter.rb
|
159
|
+
- lib/request_headers_logger/message_queue/message_queue.rb
|
160
|
+
- lib/request_headers_logger/message_queue/message_queue_plugin.rb
|
161
|
+
- lib/request_headers_logger/text_formatter.rb
|
171
162
|
- lib/request_headers_logger/version.rb
|
172
163
|
- request_headers_logger.gemspec
|
164
|
+
- spec/configuration_spec.rb
|
173
165
|
- spec/delayed_job/performable_method_spec.rb
|
166
|
+
- spec/json_formatter_spec.rb
|
174
167
|
- spec/request_headers_logger_spec.rb
|
175
168
|
- spec/spec_helper.rb
|
176
169
|
- spec/support/mock_dj_user.rb
|
177
|
-
|
170
|
+
- spec/text_formatter_spec.rb
|
171
|
+
homepage: https://github.com/fidor/request_headers_logger
|
178
172
|
licenses:
|
179
173
|
- MIT
|
180
174
|
metadata: {}
|
@@ -199,7 +193,10 @@ signing_key:
|
|
199
193
|
specification_version: 4
|
200
194
|
summary: RequestHeaderLogger Allows you to tag logs with RequestHeader flags.
|
201
195
|
test_files:
|
196
|
+
- spec/configuration_spec.rb
|
202
197
|
- spec/delayed_job/performable_method_spec.rb
|
198
|
+
- spec/json_formatter_spec.rb
|
203
199
|
- spec/request_headers_logger_spec.rb
|
204
200
|
- spec/spec_helper.rb
|
205
201
|
- spec/support/mock_dj_user.rb
|
202
|
+
- spec/text_formatter_spec.rb
|