module Sentry::StdLibLogger
def add(severity, message = nil, progname = nil, &block)
def add(severity, message = nil, progname = nil, &block) result = super return unless Sentry.initialized? && Sentry.get_current_hub # Only process logs that meet or exceed the logger's level return result if severity < level # exclude sentry SDK logs -- to prevent recursive log action, # do not process internal logs again if message.nil? && progname != Sentry::Logger::PROGNAME # handle different nature of Ruby Logger class: # inspo from Sentry::Breadcrumb::SentryLogger if block_given? message = yield else message = progname end message = message.to_s.strip if !message.nil? && message != Sentry::Logger::PROGNAME && method = SEVERITY_MAP[severity] if (filter = Sentry.configuration.std_lib_logger_filter) && !filter.call(self, message, method) return result end Sentry.logger.send(method, message, origin: ORIGIN) end end result end