Module: Bidi2pdf::Notifications::LoggingSubscriberActions
- Included in:
- LoggingSubscriber
- Defined in:
- lib/bidi2pdf/notifications/logging_subscriber.rb
Overview
for reuse within ActiveSupport::LogSubscriber
Instance Method Summary collapse
- #handle_response(event) ⇒ Object
-
#network_event_received(event) ⇒ Object
rubocop: disable Metrics/AbcSize.
-
#network_idle(event) ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity.
-
#page_loaded(event) ⇒ Object
rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity.
- #print(event) ⇒ Object
- #send_cmd(event) ⇒ Object
- #send_cmd_and_wait(event) ⇒ Object
- #session_close(event) ⇒ Object
Instance Method Details
#handle_response(event) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/bidi2pdf/notifications/logging_subscriber.rb', line 7 def handle_response(event) payload = event.payload if payload[:error] logger.error "Received error: #{payload[:error].inspect} for cmd: #{payload[:id] || "-"}" elsif !payload[:handled] Bidi2pdf.logger.warn "Unknown response: #{payload[:data].inspect}" end end |
#network_event_received(event) ⇒ Object
rubocop: disable Metrics/AbcSize
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/bidi2pdf/notifications/logging_subscriber.rb', line 40 def network_event_received(event) return unless logger.debug2? msg = case event.payload[:method] when "network.beforeRequestSent" "Request url '#{event.payload[:url]}' started" when "network.responseStarted" nil when "network.responseCompleted" "Request url '#{event.payload[:url]}' completed" when "network.fetchError" "Request url '#{event.payload[:url]}' error." else "Unknown network event: #{event.payload[:method]} for url '#{event.payload[:url]}'" end logger.debug2 msg if msg end |
#network_idle(event) ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/bidi2pdf/notifications/logging_subscriber.rb', line 61 def network_idle(event) return unless logger.info? requests = event.payload[:requests] transfered = requests.map { |request| request.bytes_received || 0 }.sum status_counts = requests .group_by { |evt| evt.http_status_code || 0 } .transform_keys { |code| code.zero? || code.nil? ? "pending" : code.to_s } .transform_values(&:count) .map { |code, count| "#{code}: #{count}" } .join(", ") logger.info "Network was idle after #{event.duration.round(1)}ms, #{requests.size} requests, " \ "transferred #{transfered} bytes (status codes: #{status_counts})" end |
#page_loaded(event) ⇒ Object
rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
79 80 81 |
# File 'lib/bidi2pdf/notifications/logging_subscriber.rb', line 79 def page_loaded(event) logger.info "Page loaded: #{event.duration.round(1)}ms" end |
#print(event) ⇒ Object
83 84 85 |
# File 'lib/bidi2pdf/notifications/logging_subscriber.rb', line 83 def print(event) logger.info "Page printed: #{event.duration.round(1)}ms" end |
#send_cmd(event) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/bidi2pdf/notifications/logging_subscriber.rb', line 17 def send_cmd(event) logger.debug "Sending command: #{event.payload[:cmd].method_name} id: ##{event.payload[:cmd_payload][:id]}" logger.debug1 do payload = redact_sensitive_fields(event.payload[:cmd_payload]) "Sending command: #{payload.inspect} (#{event.duration.round(1)}ms)" end end |
#send_cmd_and_wait(event) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/bidi2pdf/notifications/logging_subscriber.rb', line 26 def send_cmd_and_wait(event) return unless event.payload[:exception] payload = redact_sensitive_fields(event.payload[:cmd]&.params || {}) logger.error "Error sending command: #{payload} (#{event.duration.round(1)}ms) - #{event.payload[:exception].inspect}" end |
#session_close(event) ⇒ Object
33 34 35 36 37 |
# File 'lib/bidi2pdf/notifications/logging_subscriber.rb', line 33 def session_close(event) return unless event.payload[:error] logger.error "Session close error: #{event.payload[:error].inspect}, attempt: #{event.payload[:attempt]}, retry: #{event.payload[:retry]}" end |