Skip to content

Commit 42c8d7a

Browse files
authored
Add hide_request_body_for_paths config (#23)
1 parent a27858e commit 42c8d7a

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

lib/pier_logging.rb

+17-2
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,15 @@ def formatter=(formatter)
5454
end
5555

5656
class RequestLoggerConfiguration
57-
attr_reader :enabled, :user_info_getter, :hide_response_body_for_paths,
58-
:log_response, :hide_request_headers, :correlation_id_getter
57+
attr_reader :enabled, :user_info_getter, :hide_request_body_for_paths, :hide_response_body_for_paths,
58+
:log_request_body, :log_response, :hide_request_headers, :correlation_id_getter
5959

6060
def initialize
6161
@user_info_getter = ->(_ = nil) { nil }
6262
@enabled = false
63+
@hide_request_body_for_paths = nil
6364
@hide_response_body_for_paths = nil
65+
@log_request_body = true
6466
@log_response = true
6567
@hide_request_headers = nil
6668
@correlation_id_getter = ->(_ = nil, _ = nil) { nil }
@@ -71,11 +73,24 @@ def user_info_getter=(proc)
7173
@user_info_getter = proc
7274
end
7375

76+
def log_request_body=(log_request_body)
77+
raise ArgumentError, "Config 'log_request_body' must be a 'boolean'" unless !!log_request_body == log_request_body
78+
@log_request_body = log_request_body
79+
end
80+
7481
def log_response=(log_response)
7582
raise ArgumentError, "Config 'log_response' must be a 'boolean'" unless !!log_response == log_response
7683
@log_response = log_response
7784
end
7885

86+
def hide_request_body_for_paths=(hide_request_body_for_paths)
87+
unless (hide_request_body_for_paths.is_a? Array) && (hide_request_body_for_paths.all?{|item| item.is_a? Regexp})
88+
raise ArgumentError, "Config 'hide_request_body_for_paths' must be an 'Array of Regexps'"
89+
end
90+
91+
@hide_request_body_for_paths = hide_request_body_for_paths
92+
end
93+
7994
def hide_response_body_for_paths=(hide_response_body_for_paths)
8095
unless (hide_response_body_for_paths.is_a? Array) && (hide_response_body_for_paths.all?{|item| item.is_a? Regexp})
8196
raise ArgumentError, "Config 'hide_response_body_for_paths' must be an 'Array of Regexps'"

lib/pier_logging/request_logger.rb

+11-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def log(args)
5757
headers: request_headers,
5858
href: request.url,
5959
query_string: request.query_string,
60-
body: parse_body(request.body)
60+
body: request_body(request.path, request.body)
6161
},
6262
response: {
6363
status: status,
@@ -83,11 +83,20 @@ def get_request_headers_from_env(env)
8383
headers
8484
end
8585

86+
def request_body(request_path, body)
87+
return nil unless PierLogging.request_logger_configuration.log_request_body
88+
89+
hide_request_body_for_paths = PierLogging.request_logger_configuration.hide_request_body_for_paths
90+
return nil if hide_request_body_for_paths&.any?{ |path|request_path =~ path }
91+
92+
parse_body(body)
93+
end
94+
8695
def response_body(request_path, body)
8796
return nil unless PierLogging.request_logger_configuration.log_response
8897

8998
hide_response_body_for_paths = PierLogging.request_logger_configuration.hide_response_body_for_paths
90-
return nil if hide_response_body_for_paths && hide_response_body_for_paths.any?{ |path|request_path =~ path }
99+
return nil if hide_response_body_for_paths&.any?{ |path|request_path =~ path }
91100

92101
parse_body(body)
93102
end

lib/pier_logging/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module PierLogging
2-
VERSION = "0.3.2"
2+
VERSION = "0.3.3"
33
end

0 commit comments

Comments
 (0)