Module: Google::Cloud::Logging

Defined in:
lib/google/cloud/logging.rb,
lib/google/cloud/logging/sink.rb,
lib/google/cloud/logging/entry.rb,
lib/google/cloud/logging/rails.rb,
lib/google/cloud/logging/errors.rb,
lib/google/cloud/logging/logger.rb,
lib/google/cloud/logging/metric.rb,
lib/google/cloud/logging/convert.rb,
lib/google/cloud/logging/project.rb,
lib/google/cloud/logging/service.rb,
lib/google/cloud/logging/version.rb,
lib/google/cloud/logging/log/list.rb,
lib/google/cloud/logging/resource.rb,
lib/google/cloud/logging/sink/list.rb,
lib/google/cloud/logging/entry/list.rb,
lib/google/cloud/logging/middleware.rb,
lib/google/cloud/logging/credentials.rb,
lib/google/cloud/logging/metric/list.rb,
lib/google/cloud/logging/async_writer.rb,
lib/google/cloud/logging/v2/credentials.rb,
lib/google/cloud/logging/entry/operation.rb,
lib/google/cloud/logging/entry/http_request.rb,
lib/google/cloud/logging/resource_descriptor.rb,
lib/google/cloud/logging/entry/source_location.rb,
lib/google/cloud/logging/resource_descriptor/list.rb,
lib/google/cloud/logging/v2/config_service_v2_client.rb,
lib/google/cloud/logging/v2/logging_service_v2_client.rb,
lib/google/cloud/logging/v2/metrics_service_v2_client.rb

Overview

Stackdriver Logging

The Stackdriver Logging service collects and stores logs from applications and services on the Google Cloud Platform, giving you fine-grained, programmatic control over your projects' logs. You can use the Stackdriver Logging API to:

  • Read and filter log entries
  • Export your log entries to Cloud Storage, BigQuery, or Cloud Pub/Sub
  • Create logs-based metrics for use in Cloud Monitoring
  • Write log entries

For general information about Stackdriver Logging, read Stackdriver Logging Documentation.

See Stackdriver Logging Overview.

Defined Under Namespace

Modules: V2 Classes: AsyncWriteEntriesError, AsyncWriter, AsyncWriterError, Credentials, Entry, Log, Logger, Metric, Middleware, Project, Railtie, Resource, ResourceDescriptor, Sink

Constant Summary collapse

DEFAULT_LOG_NAME =

Default log name to be used for Stackdriver Logging

Middleware::DEFAULT_LOG_NAME
VERSION =
"1.9.4".freeze

Class Method Summary collapse

Class Method Details

.configure {|Google::Cloud.configure.logging| ... } ⇒ Google::Cloud::Config

Configure the Google::Cloud::Logging::Middleware when used in a Rack-based application.

The following Stackdriver Logging configuration parameters are supported:

  • project_id - (String) Project identifier for the Stackdriver Logging service you are connecting to. (The parameter project is considered deprecated, but may also be used.)
  • credentials - (String, Hash, Google::Auth::Credentials) The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See Credentials) (The parameter keyfile is considered deprecated, but may also be used.)
  • scope - (String, Array) The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access.
  • timeout - (Integer) Default timeout to use in requests.
  • client_config - (Hash) A hash of values to override the default behavior of the API client.
  • endpoint - (String) Override of the endpoint host name, or nil to use the default endpoint.
  • log_name - (String) Name of the application log file. Default: "ruby_app_log"
  • log_name_map - (Hash) Map specific request routes to other log. Default: { "/_ah/health" => "ruby_health_check_log" }
  • monitored_resource.type (String) Resource type name. See full list. Self discovered on GCP.
  • monitored_resource.labels -(Hash) Resource labels. See full list. Self discovered on GCP.
  • labels - (Hash) User defined labels. A Hash of label names to string label values or callables/Proc which are functions of the Rack environment.
  • set_default_logger_on_rails_init - (Boolean) Whether Google Cloud Logging Logger should be allowed to start background threads and open gRPC connections during Rails initialization. This should only be used with a non-forking web server. Web servers such as Puma and Unicorn should not set this, and instead set the Rails logger to a Google Cloud Logging Logger object on the worker process by calling Google::Cloud::Logging::Railtie.set_default_logger at the appropriate time, such as a post-fork hook.
  • on_error - (Proc) A Proc to be run when an error is encountered on a background thread. The Proc must take the error object as the single argument. (See Google::Cloud::Logging::AsyncWriter#on_error.)

See the Configuration Guide for full configuration parameters.

Yields:

Returns:

  • (Google::Cloud::Config)

    The configuration object the Google::Cloud::Logging module uses.



166
167
168
169
170
# File 'lib/google/cloud/logging.rb', line 166

def self.configure
  yield Google::Cloud.configure.logging if block_given?

  Google::Cloud.configure.logging
end

.new(project_id: nil, credentials: nil, scope: nil, timeout: nil, client_config: nil, endpoint: nil, project: nil, keyfile: nil) ⇒ Google::Cloud::Logging::Project

Creates a new object for connecting to the Stackdriver Logging service. Each call creates a new connection.

For more information on connecting to Google Cloud see the Authentication Guide.

Examples:

require "google/cloud/logging"

logging = Google::Cloud::Logging.new

entries = logging.entries
entries.each do |e|
  puts "[#{e.timestamp}] #{e.log_name} #{e.payload.inspect}"
end

Parameters:

  • project_id (String) (defaults to: nil)

    Project identifier for the Stackdriver Logging service you are connecting to. If not present, the default project for the credentials is used.

  • credentials (String, Hash, Google::Auth::Credentials) (defaults to: nil)

    The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See Credentials)

  • scope (String, Array<String>) (defaults to: nil)

    The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access. See Using OAuth 2.0 to Access Google APIs.

    The default scope is:

    • https://www.googleapis.com/auth/logging.admin
  • timeout (Integer) (defaults to: nil)

    Default timeout to use in requests. Optional.

  • client_config (Hash) (defaults to: nil)

    A hash of values to override the default behavior of the API client. Optional.

  • endpoint (String) (defaults to: nil)

    Override of the endpoint host name. Optional. If the param is nil, uses the default endpoint.

  • project (String) (defaults to: nil)

    Alias for the project_id argument. Deprecated.

  • keyfile (String) (defaults to: nil)

    Alias for the credentials argument. Deprecated.

Returns:

Raises:

  • (ArgumentError)


86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/google/cloud/logging.rb', line 86

def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil,
             client_config: nil, endpoint: nil, project: nil, keyfile: nil
  project_id    ||= (project || default_project_id)
  scope         ||= configure.scope
  timeout       ||= configure.timeout
  client_config ||= configure.client_config
  endpoint      ||= configure.endpoint
  credentials   ||= (keyfile || default_credentials(scope: scope))

  unless credentials.is_a? Google::Auth::Credentials
    credentials = Logging::Credentials.new credentials, scope: scope
  end

  if credentials.respond_to? :project_id
    project_id ||= credentials.project_id
  end
  project_id = project_id.to_s # Always cast to a string
  raise ArgumentError, "project_id is missing" if project_id.empty?

  Logging::Project.new(
    Logging::Service.new(
      project_id, credentials,
      host: endpoint, timeout: timeout, client_config: client_config
    )
  )
end