Class: Mongo::Monitoring::CommandLogSubscriber

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/mongo/monitoring/command_log_subscriber.rb

Overview

Subscribes to command events and logs them.

Since:

  • 2.1.0

Constant Summary

LOG_STRING_LIMIT =

Constant for the max number of characters to print when inspecting a query field.

Since:

  • 2.1.0

250

Constants included from Loggable

Loggable::PREFIX

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Constructor Details

#initialize(options = {}) ⇒ CommandLogSubscriber

Create the new log subscriber.

Examples:

Create the log subscriber.

CommandLogSubscriber.new

Parameters:

  • options (Hash) (defaults to: {})

    The options.

Options Hash (options):

  • :logger (Logger)

    An optional custom logger.

Since:

  • 2.1.0



43
44
45
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 43

def initialize(options = {})
  @options = options
end

Instance Attribute Details

#optionsHash (readonly)

Returns options The options.

Returns:

  • (Hash)

    options The options.

Since:

  • 2.1.0



25
26
27
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 25

def options
  @options
end

Instance Method Details

#failed(event) ⇒ Object

Handle the command failed event.

Examples:

Handle the event.

subscriber.failed(event)

Parameters:

  • event (CommandFailedEvent)

    The event.

Since:

  • 2.1.0



83
84
85
86
87
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 83

def failed(event)
  if logger.debug?
    log_debug("#{prefix(event)} | FAILED | #{event.message} | #{event.duration}s")
  end
end

#started(event) ⇒ Object

Handle the command started event.

Examples:

Handle the event.

subscriber.started(event)

Parameters:

  • event (CommandStartedEvent)

    The event.

Since:

  • 2.1.0



55
56
57
58
59
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 55

def started(event)
  if logger.debug?
    log_debug("#{prefix(event)} | STARTED | #{format_command(event.command)}")
  end
end

#succeeded(event) ⇒ Object

Handle the command succeeded event.

Examples:

Handle the event.

subscriber.succeeded(event)

Parameters:

  • event (CommandSucceededEvent)

    The event.

Since:

  • 2.1.0



69
70
71
72
73
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 69

def succeeded(event)
  if logger.debug?
    log_debug("#{prefix(event)} | SUCCEEDED | #{event.duration}s")
  end
end