Class: GoodData::Bricks::MaskLoggerDecorator
- Defined in:
- lib/gooddata/bricks/middleware/mask_logger_decorator.rb
Overview
Logger decorator with ability to mask sensitive values
Class Method Summary collapse
-
.extract_values(values) ⇒ [String]
Extract values to mask from structured data.
Instance Method Summary collapse
- #add(severity, message = nil, progname = nil) ⇒ Object
-
#class ⇒ Object
Decorator pretends being inner logger itselfs.
- #debug? ⇒ Boolean
-
#initialize(logger, params = []) ⇒ MaskLoggerDecorator
constructor
entry-point.
-
#mask(message) ⇒ Object
Masks given message.
Constructor Details
#initialize(logger, params = []) ⇒ MaskLoggerDecorator
entry-point
12 13 14 15 |
# File 'lib/gooddata/bricks/middleware/mask_logger_decorator.rb', line 12 def initialize(logger, params = []) @logger = logger @values_to_mask = GoodData::Bricks::MaskLoggerDecorator.extract_values(params) end |
Class Method Details
.extract_values(values) ⇒ [String]
Extract values to mask from structured data
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gooddata/bricks/middleware/mask_logger_decorator.rb', line 21 def extract_values(values) if values.is_a?(String) if values.nil? || values.empty? || values.gsub(/[*|\s]/, '') == '' [] else [values] end elsif values.is_a?(Hash) || values.is_a?(Array) (values.is_a?(Hash) ? values.values : values).reduce([]) do |strings, item| strings.concat extract_values(item) strings end else [] end end |
Instance Method Details
#add(severity, message = nil, progname = nil) ⇒ Object
60 61 62 63 64 |
# File 'lib/gooddata/bricks/middleware/mask_logger_decorator.rb', line 60 def add(severity, = nil, progname = nil) mask mask progname @logger.add(severity, , progname) end |
#class ⇒ Object
Decorator pretends being inner logger itselfs.
56 57 58 |
# File 'lib/gooddata/bricks/middleware/mask_logger_decorator.rb', line 56 def class @logger.class end |
#debug? ⇒ Boolean
46 47 48 |
# File 'lib/gooddata/bricks/middleware/mask_logger_decorator.rb', line 46 def debug? true end |
#mask(message) ⇒ Object
Masks given message
69 70 71 72 73 74 75 76 77 |
# File 'lib/gooddata/bricks/middleware/mask_logger_decorator.rb', line 69 def mask() unless .nil? string = .to_s @values_to_mask.reduce(string) do |, value_to_mask| .gsub(value_to_mask, "******") end end end |