Class: Dadata::SecureLogger

Inherits:
Logger
  • Object
show all
Includes:
SensitiveData
Defined in:
lib/dadata.rb

Overview

SecureLogger extends Ruby’s Logger class to provide automatic sanitization of sensitive data in log messages. It is used internally by the gem to ensure that sensitive information like API keys and secrets are not exposed in logs.

Examples:

logger = SecureLogger.new($stdout)
logger.info('API-Key: secret123') # Logs: "API-Key: [FILTERED]"

Constant Summary

Constants included from SensitiveData

Dadata::SensitiveData::SENSITIVE_HEADERS

Instance Method Summary collapse

Methods included from SensitiveData

#sanitize_headers, #sanitize_message

Constructor Details

#initialize(logdev = nil) ⇒ SecureLogger

Creates a new SecureLogger instance with a custom formatter that sanitizes sensitive data in log messages.

Parameters:

  • logdev (IO, String, nil) (defaults to: nil)

    The log device to write to



32
33
34
35
36
37
38
# File 'lib/dadata.rb', line 32

def initialize(logdev = nil)
  super
  @formatter = proc do |severity, datetime, progname, msg|
    msg = sanitize_message(msg.to_s)
    "#{severity[0]}, [#{datetime}]  #{severity} -- #{progname}: #{msg}\n"
  end
end