Sha256: ac9fb0d1af901c5cbc505c3528188cbd5771817af60852da3b655d4d0df0eb63
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
require "logstop/formatter" require "logstop/railtie" if defined?(Rails) require "logstop/version" module Logstop FILTERED_STR = "[FILTERED]".freeze FILTERED_URL_STR = "\\1[FILTERED]\\2".freeze CREDIT_CARD_REGEX = /\b[3456]\d{15}\b/ CREDIT_CARD_REGEX_DELIMITERS = /\b[3456]\d{3}[\s+-]\d{4}[\s+-]\d{4}[\s+-]\d{4}\b/ EMAIL_REGEX = /\b[\w]([\w+.-]|%2B)+(?:@|%40)[a-z\d-]+(?:\.[a-z\d-]+)*\.[a-z]+\b/i IP_REGEX = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/ PHONE_REGEX = /\b(?:\+\d{1,2}\s)?\(?\d{3}\)?[\s+.-]\d{3}[\s+.-]\d{4}\b/ SSN_REGEX = /\b\d{3}[\s+-]\d{2}[\s+-]\d{4}\b/ URL_PASSWORD_REGEX = /((?:\/\/|%2F%2F)\S+(?::|%3A))\S+(@|%40)/ def self.scrub(msg, ip: false, scrubber: nil) msg = msg.to_s.dup # order filters are applied is important msg.gsub!(URL_PASSWORD_REGEX, FILTERED_URL_STR) msg.gsub!(EMAIL_REGEX, FILTERED_STR) msg.gsub!(CREDIT_CARD_REGEX, FILTERED_STR) msg.gsub!(CREDIT_CARD_REGEX_DELIMITERS, FILTERED_STR) msg.gsub!(PHONE_REGEX, FILTERED_STR) msg.gsub!(SSN_REGEX, FILTERED_STR) msg.gsub!(IP_REGEX, FILTERED_STR) if ip msg = scrubber.call(msg) if scrubber msg end def self.guard(logger, **options) logger.formatter = Logstop::Formatter.new(logger.formatter, **options) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
logstop-0.2.7 | lib/logstop.rb |