google-cloud-logging - Class Google::Cloud::Logging::Project (v2.2.2)

Reference documentation and code samples for the google-cloud-logging class Google::Cloud::Logging::Project.

Project

Projects are top-level containers in Google Cloud Platform. They store information about billing and authorized users, and they control access to Stackdriver Logging resources. Each project has a friendly name and a unique ID. Projects can be created only in the Google Developers Console . See Google::Cloud#logging .

See Google::Cloud#logging

Inherits

  • Object

Example

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entries 
  
 = 
  
 logging 
 . 
 entries 

Methods

#async_writer

  def 
  
 async_writer 
 ( 
 max_batch_count 
 : 
  
 10_000 
 , 
  
 max_batch_bytes 
 : 
  
 10_000_000 
 , 
  
 max_queue_size 
 : 
  
 100 
 , 
  
 interval 
 : 
  
 5 
 , 
  
 threads 
 : 
  
 10 
 , 
  
 partial_success 
 : 
  
 false 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 AsyncWriter 
 

Creates an object that buffers, batches, and transmits log entries efficiently. Writing log entries to this object is asynchronous and will not block.

Batches that cannot be delivered immediately are queued. When the queue is full new batch requests will raise errors that can be consumed using the AsyncWriter#on_error callback. This provides back pressure in case the writer cannot keep up with requests.

This object is thread-safe; it may accept write requests from multiple threads simultaneously, and will serialize them when executing in the background thread.

Parameters
  • max_batch_count(Integer) (defaults to: 10_000) — The maximum number of log entries that may be buffered and sent in a batch.
  • max_batch_bytes(Integer) (defaults to: 10_000_000) — The maximum byte size of log entries that may be buffered and sent in a batch.
  • max_queue_size(Integer) (defaults to: 100) — The maximum number of pending write_entries requests that may be queued.
  • interval(Numeric) (defaults to: 5) — The number of seconds to buffer log entries before a batch is written. Default is 5.
  • threads(Integer) (defaults to: 10) — The number of threads used to make batched write_entries requests. Default is 10.
  • partial_success(Boolean) (defaults to: false) — Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors when communicating to the Stackdriver Logging API.
Returns
Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 async 
  
 = 
  
 logging 
 . 
 async_writer 
 entry1 
  
 = 
  
 logging 
 . 
 entry 
  
 payload 
 : 
  
 "Job started." 
 entry2 
  
 = 
  
 logging 
 . 
 entry 
  
 payload 
 : 
  
 "Job completed." 
 labels 
  
 = 
  
 { 
  
 job_size 
 : 
  
 "large" 
 , 
  
 job_code 
 : 
  
 "red" 
  
 } 
 resource 
  
 = 
  
 logging 
 . 
 resource 
  
 "gae_app" 
 , 
  
 "module_id" 
  
 = 
>  
 "1" 
 , 
  
 "version_id" 
  
 = 
>  
 "20150925t173233" 
 async 
 . 
 write_entries 
  
 [ 
 entry1 
 , 
  
 entry2 
 ] 
 , 
  
 log_name 
 : 
  
 "my_app_log" 
 , 
  
 resource 
 : 
  
 resource 
 , 
  
 labels 
 : 
  
 labels 

#create_metric

  def 
  
 create_metric 
 ( 
 name 
 , 
  
 filter 
 , 
  
 description 
 : 
  
 nil 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Metric 
 
Aliases

Creates a new logs-based metric for Google Cloud Monitoring.

Parameters
  • name(String) — The client-assigned metric identifier. Metric identifiers are limited to 1000 characters and can include only the following characters: A-Z , a-z , 0-9 , and the special characters _-.,+!*',()%/\ . The forward-slash character ( / ) denotes a hierarchy of name pieces, and it cannot be the first character of the name.
  • filter(String) — An advanced logs filter .
  • description(String, nil) (defaults to: nil) — A description of this metric, which is used in documentation.
Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metric 
  
 = 
  
 logging 
 . 
 create_metric 
  
 "errors" 
 , 
  
 "severity>=ERROR" 

#create_sink

  def 
  
 create_sink 
 ( 
 name 
 , 
  
 destination 
 , 
  
 filter 
 : 
  
 nil 
 , 
  
 unique_writer_identity 
 : 
  
 nil 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
 
Aliases

Creates a new project sink. When you create a sink, only new log entries that match the sink's filter are exported. Stackdriver Logging does not send previously-ingested log entries to the sink's destination.

Before creating the sink, ensure that you have granted the sink's unique writer identity permission to write logs to the destination. See Destination permissions .

Overloads
  def 
  
 create_sink 
 ( 
 name 
 , 
  
 destination 
 , 
  
 filter 
 : 
  
 nil 
 , 
  
 unique_writer_identity 
 : 
  
 nil 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
 
Creates a new project sink. When you create a sink, only new log entries that match the sink's filter are exported. Stackdriver Logging does not send previously-ingested log entries to the sink's destination.

Before creating the sink, ensure that you have granted the sink's unique writer identity permission to write logs to the destination. See Destination permissions .

Parameters
  • name(String) — The client-assigned sink identifier. Sink identifiers are limited to 1000 characters and can include only the following characters: A-Z , a-z , 0-9 , and the special characters _-. .
  • destination(String) — The resource name of the export destination. See About sinks for examples.
  • filter(String, nil) (defaults to: nil) — An advanced logs filter that defines the log entries to be exported. The filter must be consistent with the log entry format designed by the version parameter, regardless of the format of the log entry that was originally written to Stackdriver Logging.
  • unique_writer_identity(Boolean) (defaults to: nil) — Whether the sink will have a dedicated service account returned in the sink's writer_identity . Set this field to be true to export logs from one project to a different project. This field is ignored for non-project sinks (e.g. organization sinks) because those sinks are required to have dedicated service accounts. Optional.
Returns
Example
 require 
  
 "google/cloud/storage" 
 storage 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Storage 
 . 
 new 
 bucket 
  
 = 
  
 storage 
 . 
 create_bucket 
  
 "my-logs-bucket" 
 # Grant owner permission to Stackdriver Logging service 
 email 
  
 = 
  
 "cloud-logs@google.com" 
 bucket 
 . 
 acl 
 . 
 add_owner 
  
 "group- 
 #{ 
 email 
 } 
 " 
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sink 
  
 = 
  
 logging 
 . 
 create_sink 
  
 "my-sink" 
 , 
  
 "storage.googleapis.com/ 
 #{ 
 bucket 
 . 
 id 
 } 
 " 

#delete_log

  def 
  
 delete_log 
 ( 
 name 
 ) 
  
 - 
>  
 Boolean 
 

Deletes a log and all its log entries. The log will reappear if it receives new entries.

Parameter
  • name(String) — The name of the log, which may be the full path including the project ID ( projects/<project-id>/logs/<log-id> ), or just the short name ( <log-id> ), in which case the beginning of the path will be automatically prepended, using the ID of the current project.
Returns
  • (Boolean) — Returns true if the log and all its log entries were deleted.
Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logging 
 . 
 delete_log 
  
 "my_app_log" 

#entries

  def 
  
 entries 
 ( 
 resources 
 : 
  
 nil 
 , 
  
 filter 
 : 
  
 nil 
 , 
  
 order 
 : 
  
 nil 
 , 
  
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 , 
  
 projects 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Entry 
> 
Aliases

Lists log entries. Use this method to retrieve log entries from Cloud Logging.

Parameters
  • resources(String, Array<String>) (defaults to: nil) — One or more cloud resources from which to retrieve log entries. If both resources and projects are nil , the ID of the receiving project instance will be used. Examples: "projects/my-project-1A" , "projects/1234567890" .
  • filter(String) (defaults to: nil) — An advanced logs filter . The filter is compared against all log entries in the projects specified by projects . Only entries that match the filter are retrieved. An empty filter matches all log entries.
  • order(String) (defaults to: nil) — How the results should be sorted. Presently, the only permitted values are "timestamp" (default) and "timestamp desc".
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of entries to return.
  • projects(String, Array<String>) (defaults to: nil) — One or more project IDs or project numbers from which to retrieve log entries. Each value will be formatted as a project resource name and added to any values passed to resources . If both resources and projects are nil , the ID of the receiving project instance will be used. This is deprecated in favor of resources .
Returns
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 

You can use a filter to narrow results to a single log.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entries 
  
 = 
  
 logging 
 . 
 entries 
  
 filter 
 : 
  
 "logName:syslog" 
 entries 
 . 
 each 
  
 do 
  
 | 
 e 
 | 
  
 puts 
  
 "[ 
 #{ 
 e 
 . 
 timestamp 
 } 
 ] 
 #{ 
 e 
 . 
 payload 
 . 
 inspect 
 } 
 " 
 end 

You can also order the results by timestamp.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entries 
  
 = 
  
 logging 
 . 
 entries 
  
 order 
 : 
  
 "timestamp desc" 
 entries 
 . 
 each 
  
 do 
  
 | 
 e 
 | 
  
 puts 
  
 "[ 
 #{ 
 e 
 . 
 timestamp 
 } 
 ] 
 #{ 
 e 
 . 
 log_name 
 } 
  
 #{ 
 e 
 . 
 payload 
 . 
 inspect 
 } 
 " 
 end 

Retrieve all log entries: (See Entry::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entries 
  
 = 
  
 logging 
 . 
 entries 
 entries 
 . 
 all 
  
 do 
  
 | 
 e 
 | 
  
 puts 
  
 "[ 
 #{ 
 e 
 . 
 timestamp 
 } 
 ] 
 #{ 
 e 
 . 
 log_name 
 } 
  
 #{ 
 e 
 . 
 payload 
 . 
 inspect 
 } 
 " 
 end 

#entry

  def 
  
 entry 
 ( 
 log_name 
 : 
  
 nil 
 , 
  
 resource 
 : 
  
 nil 
 , 
  
 timestamp 
 : 
  
 nil 
 , 
  
 severity 
 : 
  
 nil 
 , 
  
 insert_id 
 : 
  
 nil 
 , 
  
 labels 
 : 
  
 nil 
 , 
  
 payload 
 : 
  
 nil 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Entry 
 
Aliases

Creates an new Entry instance that may be populated and written to the Stackdriver Logging service. The Entry#resource attribute is pre-populated with a new Resource instance. Equivalent to calling Google::Cloud::Logging::Entry.new .

Parameters
  • log_name(String) (defaults to: nil) — The resource name of the log to which this log entry belongs. See also Entry#log_name= .
  • resource( Resource ) (defaults to: nil) — The monitored resource associated with this log entry. See also Entry#resource .
  • timestamp(Time) (defaults to: nil) — The time the event described by the log entry occurred. If omitted, Stackdriver Logging will use the time the log entry is written. See also Entry#timestamp .
  • severity(Symbol) (defaults to: nil) — The severity level of the log entry. The default value is DEFAULT . See also Entry#severity .
  • insert_id(String) (defaults to: nil) — A unique ID for the log entry. If you provide this field, the logging service considers other log entries in the same log with the same ID as duplicates which can be removed. If omitted, Stackdriver Logging will generate a unique ID for this log entry. See also Entry#insert_id .
  • labels(Hash{Symbol,String => String}) (defaults to: nil) — A hash of user-defined key:value pairs that provide additional information about the log entry. See also Entry#labels= .
  • payload(String, Hash) (defaults to: nil) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer). See also Entry#payload .
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entry 
  
 = 
  
 logging 
 . 
 entry 
  
 severity 
 : 
  
 :INFO 
 , 
  
 payload 
 : 
  
 "Job started." 
 logging 
 . 
 write_entries 
  
 entry 

Provide a hash to write a JSON payload to the log:

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 payload 
  
 = 
  
 { 
  
 "stats" 
  
 = 
>  
 { 
  
 "a" 
  
 = 
>  
 8 
 , 
  
 "b" 
  
 = 
>  
 12 
 . 
 5 
 } 
  
 } 
 entry 
  
 = 
  
 logging 
 . 
 entry 
  
 severity 
 : 
  
 :INFO 
 , 
  
 payload 
 : 
  
 payload 
 logging 
 . 
 write_entries 
  
 entry 

#find_entries

  def 
  
 find_entries 
 ( 
 resources 
 : 
  
 nil 
 , 
  
 filter 
 : 
  
 nil 
 , 
  
 order 
 : 
  
 nil 
 , 
  
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 , 
  
 projects 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Entry 
> 
Alias Of: #entries

Lists log entries. Use this method to retrieve log entries from Cloud Logging.

Parameters
  • resources(String, Array<String>) (defaults to: nil) — One or more cloud resources from which to retrieve log entries. If both resources and projects are nil , the ID of the receiving project instance will be used. Examples: "projects/my-project-1A" , "projects/1234567890" .
  • filter(String) (defaults to: nil) — An advanced logs filter . The filter is compared against all log entries in the projects specified by projects . Only entries that match the filter are retrieved. An empty filter matches all log entries.
  • order(String) (defaults to: nil) — How the results should be sorted. Presently, the only permitted values are "timestamp" (default) and "timestamp desc".
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of entries to return.
  • projects(String, Array<String>) (defaults to: nil) — One or more project IDs or project numbers from which to retrieve log entries. Each value will be formatted as a project resource name and added to any values passed to resources . If both resources and projects are nil , the ID of the receiving project instance will be used. This is deprecated in favor of resources .
Returns
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 

You can use a filter to narrow results to a single log.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entries 
  
 = 
  
 logging 
 . 
 entries 
  
 filter 
 : 
  
 "logName:syslog" 
 entries 
 . 
 each 
  
 do 
  
 | 
 e 
 | 
  
 puts 
  
 "[ 
 #{ 
 e 
 . 
 timestamp 
 } 
 ] 
 #{ 
 e 
 . 
 payload 
 . 
 inspect 
 } 
 " 
 end 

You can also order the results by timestamp.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entries 
  
 = 
  
 logging 
 . 
 entries 
  
 order 
 : 
  
 "timestamp desc" 
 entries 
 . 
 each 
  
 do 
  
 | 
 e 
 | 
  
 puts 
  
 "[ 
 #{ 
 e 
 . 
 timestamp 
 } 
 ] 
 #{ 
 e 
 . 
 log_name 
 } 
  
 #{ 
 e 
 . 
 payload 
 . 
 inspect 
 } 
 " 
 end 

Retrieve all log entries: (See Entry::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entries 
  
 = 
  
 logging 
 . 
 entries 
 entries 
 . 
 all 
  
 do 
  
 | 
 e 
 | 
  
 puts 
  
 "[ 
 #{ 
 e 
 . 
 timestamp 
 } 
 ] 
 #{ 
 e 
 . 
 log_name 
 } 
  
 #{ 
 e 
 . 
 payload 
 . 
 inspect 
 } 
 " 
 end 

#find_log_names

  def 
  
 find_log_names 
 ( 
 resource 
 : 
  
 nil 
 , 
  
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<String> 
 
Alias Of: #logs

Lists log names. Use this method to retrieve log names from Cloud Logging.

Parameters
  • resource(String) (defaults to: nil) — The cloud resource from which to retrieve log names. Optional. If nil , the ID of the receiving project instance will be used. Examples: "projects/my-project-1A" , "projects/1234567890" .
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of log names to return.
Returns
  • (Array<String>) — A list of log names. For example, projects/my-project/syslog or organizations/123/cloudresourcemanager.googleapis.com%2Factivity . (See Log::List )
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logs 
  
 = 
  
 logging 
 . 
 logs 
 logs 
 . 
 each 
  
 { 
  
 | 
 l 
 | 
  
 puts 
  
 l 
  
 } 

Retrieve all log names: (See Log::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logs 
  
 = 
  
 logging 
 . 
 logs 
 logs 
 . 
 all 
  
 { 
  
 | 
 l 
 | 
  
 puts 
  
 l 
  
 } 

#find_logs

  def 
  
 find_logs 
 ( 
 resource 
 : 
  
 nil 
 , 
  
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<String> 
 
Alias Of: #logs

Lists log names. Use this method to retrieve log names from Cloud Logging.

Parameters
  • resource(String) (defaults to: nil) — The cloud resource from which to retrieve log names. Optional. If nil , the ID of the receiving project instance will be used. Examples: "projects/my-project-1A" , "projects/1234567890" .
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of log names to return.
Returns
  • (Array<String>) — A list of log names. For example, projects/my-project/syslog or organizations/123/cloudresourcemanager.googleapis.com%2Factivity . (See Log::List )
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logs 
  
 = 
  
 logging 
 . 
 logs 
 logs 
 . 
 each 
  
 { 
  
 | 
 l 
 | 
  
 puts 
  
 l 
  
 } 

Retrieve all log names: (See Log::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logs 
  
 = 
  
 logging 
 . 
 logs 
 logs 
 . 
 all 
  
 { 
  
 | 
 l 
 | 
  
 puts 
  
 l 
  
 } 

#find_metric

  def 
  
 find_metric 
 ( 
 name 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Metric 
 , 
  
 nil 
 
Alias Of: #metric

Retrieves metric by name.

Parameter
  • name(String) — Name of a metric.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metric 
  
 = 
  
 logging 
 . 
 metric 
  
 "existing_metric" 

By default nil will be returned if metric does not exist.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metric 
  
 = 
  
 logging 
 . 
 metric 
  
 "non_existing_metric" 
  
 # nil 

#find_metrics

  def 
  
 find_metrics 
 ( 
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Metric 
> 
Alias Of: #metrics

Retrieves the list of metrics belonging to the project.

Parameters
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of metrics to return.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metrics 
  
 = 
  
 logging 
 . 
 metrics 
 metrics 
 . 
 each 
  
 do 
  
 | 
 m 
 | 
  
 puts 
  
 " 
 #{ 
 m 
 . 
 name 
 } 
 : 
 #{ 
 m 
 . 
 filter 
 } 
 " 
 end 

Retrieve all metrics: (See Metric::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metrics 
  
 = 
  
 logging 
 . 
 metrics 
 metrics 
 . 
 all 
  
 do 
  
 | 
 m 
 | 
  
 puts 
  
 " 
 #{ 
 m 
 . 
 name 
 } 
 : 
 #{ 
 m 
 . 
 filter 
 } 
 " 
 end 

#find_resource_descriptors

  def 
  
 find_resource_descriptors 
 ( 
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 ResourceDescriptor 
> 

Retrieves the list of monitored resource descriptors that are used by Stackdriver Logging.

Parameters
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of resource descriptors to return.
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 resource_descriptors 
  
 = 
  
 logging 
 . 
 resource_descriptors 
 resource_descriptors 
 . 
 each 
  
 do 
  
 | 
 rd 
 | 
  
 label_keys 
  
 = 
  
 rd 
 . 
 labels 
 . 
 map 
 ( 
& :key 
 ) 
 . 
 join 
 ( 
 ", " 
 ) 
  
 puts 
  
 " 
 #{ 
 rd 
 . 
 type 
 } 
 ( 
 #{ 
 label_keys 
 } 
 )" 
 end 

Pagination:

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 resource_descriptors 
  
 = 
  
 logging 
 . 
 resource_descriptors 
 resource_descriptors 
 . 
 all 
  
 do 
  
 | 
 rd 
 | 
  
 puts 
  
 rd 
 . 
 type 
 end 

#find_sink

  def 
  
 find_sink 
 ( 
 sink_name 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
 , 
  
 nil 
 
Alias Of: #sink

Retrieves a sink by name.

Parameter
  • sink_name(String) — Name of a sink.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sink 
  
 = 
  
 logging 
 . 
 sink 
  
 "existing-sink" 

By default nil will be returned if the sink does not exist.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sink 
  
 = 
  
 logging 
 . 
 sink 
  
 "non-existing-sink" 
  
 # nil 

#find_sinks

  def 
  
 find_sinks 
 ( 
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
> 
Alias Of: #sinks

Retrieves the list of sinks belonging to the project.

Parameters
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of sinks to return.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sinks 
  
 = 
  
 logging 
 . 
 sinks 
 sinks 
 . 
 each 
  
 do 
  
 | 
 s 
 | 
  
 puts 
  
 " 
 #{ 
 s 
 . 
 name 
 } 
 : 
 #{ 
 s 
 . 
 filter 
 } 
 -> 
 #{ 
 s 
 . 
 destination 
 } 
 " 
 end 

Retrieve all sinks: (See Sink::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sinks 
  
 = 
  
 logging 
 . 
 sinks 
 sinks 
 . 
 all 
  
 do 
  
 | 
 s 
 | 
  
 puts 
  
 " 
 #{ 
 s 
 . 
 name 
 } 
 : 
 #{ 
 s 
 . 
 filter 
 } 
 -> 
 #{ 
 s 
 . 
 destination 
 } 
 " 
 end 

#get_metric

  def 
  
 get_metric 
 ( 
 name 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Metric 
 , 
  
 nil 
 
Alias Of: #metric

Retrieves metric by name.

Parameter
  • name(String) — Name of a metric.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metric 
  
 = 
  
 logging 
 . 
 metric 
  
 "existing_metric" 

By default nil will be returned if metric does not exist.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metric 
  
 = 
  
 logging 
 . 
 metric 
  
 "non_existing_metric" 
  
 # nil 

#get_sink

  def 
  
 get_sink 
 ( 
 sink_name 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
 , 
  
 nil 
 
Alias Of: #sink

Retrieves a sink by name.

Parameter
  • sink_name(String) — Name of a sink.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sink 
  
 = 
  
 logging 
 . 
 sink 
  
 "existing-sink" 

By default nil will be returned if the sink does not exist.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sink 
  
 = 
  
 logging 
 . 
 sink 
  
 "non-existing-sink" 
  
 # nil 

#log_names

  def 
  
 log_names 
 ( 
 resource 
 : 
  
 nil 
 , 
  
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<String> 
 
Alias Of: #logs

Lists log names. Use this method to retrieve log names from Cloud Logging.

Parameters
  • resource(String) (defaults to: nil) — The cloud resource from which to retrieve log names. Optional. If nil , the ID of the receiving project instance will be used. Examples: "projects/my-project-1A" , "projects/1234567890" .
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of log names to return.
Returns
  • (Array<String>) — A list of log names. For example, projects/my-project/syslog or organizations/123/cloudresourcemanager.googleapis.com%2Factivity . (See Log::List )
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logs 
  
 = 
  
 logging 
 . 
 logs 
 logs 
 . 
 each 
  
 { 
  
 | 
 l 
 | 
  
 puts 
  
 l 
  
 } 

Retrieve all log names: (See Log::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logs 
  
 = 
  
 logging 
 . 
 logs 
 logs 
 . 
 all 
  
 { 
  
 | 
 l 
 | 
  
 puts 
  
 l 
  
 } 

#logger

  def 
  
 logger 
 ( 
 log_name 
 , 
  
 resource 
 , 
  
 labels 
  
 = 
  
 {}) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Logger 
 

Creates a logger instance that is API-compatible with Ruby's standard library Logger .

The logger will create a new AsyncWriter object to transmit log entries on a background thread.

Parameters
  • log_name(String) — A log resource name to be associated with the written log entries.
  • resource( Google::Cloud::Logging::Resource ) — The monitored resource to be associated with written log entries.
  • labels(Hash) — A set of user-defined data to be associated with written log entries. Values can be strings or Procs which are functions of the request environment.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 resource 
  
 = 
  
 logging 
 . 
 resource 
  
 "gae_app" 
 , 
  
 module_id 
 : 
  
 "1" 
 , 
  
 version_id 
 : 
  
 "20150925t173233" 
 logger 
  
 = 
  
 logging 
 . 
 logger 
  
 "my_app_log" 
 , 
  
 resource 
 , 
  
 env 
 : 
  
 :production 
 logger 
 . 
 info 
  
 "Job started." 

Provide a hash to write a JSON payload to the log:

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 resource 
  
 = 
  
 logging 
 . 
 resource 
  
 "gae_app" 
 , 
  
 module_id 
 : 
  
 "1" 
 , 
  
 version_id 
 : 
  
 "20150925t173233" 
 logger 
  
 = 
  
 logging 
 . 
 logger 
  
 "my_app_log" 
 , 
  
 resource 
 , 
  
 env 
 : 
  
 :production 
 payload 
  
 = 
  
 { 
  
 "stats" 
  
 = 
>  
 { 
  
 "a" 
  
 = 
>  
 8 
 , 
  
 "b" 
  
 = 
>  
 12 
 . 
 5 
 } 
  
 } 
 logger 
 . 
 info 
  
 payload 

#logs

  def 
  
 logs 
 ( 
 resource 
 : 
  
 nil 
 , 
  
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<String> 
 

Lists log names. Use this method to retrieve log names from Cloud Logging.

Parameters
  • resource(String) (defaults to: nil) — The cloud resource from which to retrieve log names. Optional. If nil , the ID of the receiving project instance will be used. Examples: "projects/my-project-1A" , "projects/1234567890" .
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of log names to return.
Returns
  • (Array<String>) — A list of log names. For example, projects/my-project/syslog or organizations/123/cloudresourcemanager.googleapis.com%2Factivity . (See Log::List )
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logs 
  
 = 
  
 logging 
 . 
 logs 
 logs 
 . 
 each 
  
 { 
  
 | 
 l 
 | 
  
 puts 
  
 l 
  
 } 

Retrieve all log names: (See Log::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 logs 
  
 = 
  
 logging 
 . 
 logs 
 logs 
 . 
 all 
  
 { 
  
 | 
 l 
 | 
  
 puts 
  
 l 
  
 } 

#metric

  def 
  
 metric 
 ( 
 name 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Metric 
 , 
  
 nil 
 

Retrieves metric by name.

Parameter
  • name(String) — Name of a metric.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metric 
  
 = 
  
 logging 
 . 
 metric 
  
 "existing_metric" 

By default nil will be returned if metric does not exist.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metric 
  
 = 
  
 logging 
 . 
 metric 
  
 "non_existing_metric" 
  
 # nil 

#metrics

  def 
  
 metrics 
 ( 
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Metric 
> 
Aliases

Retrieves the list of metrics belonging to the project.

Parameters
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of metrics to return.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metrics 
  
 = 
  
 logging 
 . 
 metrics 
 metrics 
 . 
 each 
  
 do 
  
 | 
 m 
 | 
  
 puts 
  
 " 
 #{ 
 m 
 . 
 name 
 } 
 : 
 #{ 
 m 
 . 
 filter 
 } 
 " 
 end 

Retrieve all metrics: (See Metric::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metrics 
  
 = 
  
 logging 
 . 
 metrics 
 metrics 
 . 
 all 
  
 do 
  
 | 
 m 
 | 
  
 puts 
  
 " 
 #{ 
 m 
 . 
 name 
 } 
 : 
 #{ 
 m 
 . 
 filter 
 } 
 " 
 end 

#new_entry

  def 
  
 new_entry 
 ( 
 log_name 
 : 
  
 nil 
 , 
  
 resource 
 : 
  
 nil 
 , 
  
 timestamp 
 : 
  
 nil 
 , 
  
 severity 
 : 
  
 nil 
 , 
  
 insert_id 
 : 
  
 nil 
 , 
  
 labels 
 : 
  
 nil 
 , 
  
 payload 
 : 
  
 nil 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Entry 
 
Alias Of: #entry

Creates an new Entry instance that may be populated and written to the Stackdriver Logging service. The Entry#resource attribute is pre-populated with a new Resource instance. Equivalent to calling Google::Cloud::Logging::Entry.new .

Parameters
  • log_name(String) (defaults to: nil) — The resource name of the log to which this log entry belongs. See also Entry#log_name= .
  • resource( Resource ) (defaults to: nil) — The monitored resource associated with this log entry. See also Entry#resource .
  • timestamp(Time) (defaults to: nil) — The time the event described by the log entry occurred. If omitted, Stackdriver Logging will use the time the log entry is written. See also Entry#timestamp .
  • severity(Symbol) (defaults to: nil) — The severity level of the log entry. The default value is DEFAULT . See also Entry#severity .
  • insert_id(String) (defaults to: nil) — A unique ID for the log entry. If you provide this field, the logging service considers other log entries in the same log with the same ID as duplicates which can be removed. If omitted, Stackdriver Logging will generate a unique ID for this log entry. See also Entry#insert_id .
  • labels(Hash{Symbol,String => String}) (defaults to: nil) — A hash of user-defined key:value pairs that provide additional information about the log entry. See also Entry#labels= .
  • payload(String, Hash) (defaults to: nil) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer). See also Entry#payload .
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entry 
  
 = 
  
 logging 
 . 
 entry 
  
 severity 
 : 
  
 :INFO 
 , 
  
 payload 
 : 
  
 "Job started." 
 logging 
 . 
 write_entries 
  
 entry 

Provide a hash to write a JSON payload to the log:

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 payload 
  
 = 
  
 { 
  
 "stats" 
  
 = 
>  
 { 
  
 "a" 
  
 = 
>  
 8 
 , 
  
 "b" 
  
 = 
>  
 12 
 . 
 5 
 } 
  
 } 
 entry 
  
 = 
  
 logging 
 . 
 entry 
  
 severity 
 : 
  
 :INFO 
 , 
  
 payload 
 : 
  
 payload 
 logging 
 . 
 write_entries 
  
 entry 

#new_metric

  def 
  
 new_metric 
 ( 
 name 
 , 
  
 filter 
 , 
  
 description 
 : 
  
 nil 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Metric 
 
Alias Of: #create_metric

Creates a new logs-based metric for Google Cloud Monitoring.

Parameters
  • name(String) — The client-assigned metric identifier. Metric identifiers are limited to 1000 characters and can include only the following characters: A-Z , a-z , 0-9 , and the special characters _-.,+!*',()%/\ . The forward-slash character ( / ) denotes a hierarchy of name pieces, and it cannot be the first character of the name.
  • filter(String) — An advanced logs filter .
  • description(String, nil) (defaults to: nil) — A description of this metric, which is used in documentation.
Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 metric 
  
 = 
  
 logging 
 . 
 create_metric 
  
 "errors" 
 , 
  
 "severity>=ERROR" 

#new_resource

  def 
  
 new_resource 
 ( 
 type 
 , 
  
 labels 
  
 = 
  
 {}) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Resource 
 
Alias Of: #resource

Creates a new monitored resource instance.

Parameters
  • type(String) — The type of resource, as represented by a ResourceDescriptor .
  • labels(Hash) — A set of labels that can be used to describe instances of this monitored resource type.
Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 resource 
  
 = 
  
 logging 
 . 
 resource 
  
 "gae_app" 
 , 
  
 "module_id" 
  
 = 
>  
 "1" 
 , 
  
 "version_id" 
  
 = 
>  
 "20150925t173233" 

#new_sink

  def 
  
 create_sink 
 ( 
 name 
 , 
  
 destination 
 , 
  
 filter 
 : 
  
 nil 
 , 
  
 unique_writer_identity 
 : 
  
 nil 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
 
Alias Of: #create_sink

Creates a new project sink. When you create a sink, only new log entries that match the sink's filter are exported. Stackdriver Logging does not send previously-ingested log entries to the sink's destination.

Before creating the sink, ensure that you have granted the sink's unique writer identity permission to write logs to the destination. See Destination permissions .

Overloads
  def 
  
 create_sink 
 ( 
 name 
 , 
  
 destination 
 , 
  
 filter 
 : 
  
 nil 
 , 
  
 unique_writer_identity 
 : 
  
 nil 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
 
filter](https://cloud.google.com/logging/docs/view/advanced_filters) that defines the log entries to be exported. The filter must be consistent with the log entry format designed by the version parameter, regardless of the format of the log entry that was originally written to Stackdriver Logging.
Parameters
  • name(String) — The client-assigned sink identifier. Sink identifiers are limited to 1000 characters and can include only the following characters: A-Z , a-z , 0-9 , and the special characters _-. .
  • destination(String) — The resource name of the export destination. See About sinks for examples.
  • filter(String, nil) (defaults to: nil) — An [advanced logs
  • unique_writer_identity(Boolean) (defaults to: nil) — Whether the sink will have a dedicated service account returned in the sink's writer_identity . Set this field to be true to export logs from one project to a different project. This field is ignored for non-project sinks (e.g. organization sinks) because those sinks are required to have dedicated service accounts. Optional.
Returns
Example
 require 
  
 "google/cloud/storage" 
 storage 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Storage 
 . 
 new 
 bucket 
  
 = 
  
 storage 
 . 
 create_bucket 
  
 "my-logs-bucket" 
 # Grant owner permission to Stackdriver Logging service 
 email 
  
 = 
  
 "cloud-logs@google.com" 
 bucket 
 . 
 acl 
 . 
 add_owner 
  
 "group- 
 #{ 
 email 
 } 
 " 
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sink 
  
 = 
  
 logging 
 . 
 create_sink 
  
 "my-sink" 
 , 
  
 "storage.googleapis.com/ 
 #{ 
 bucket 
 . 
 id 
 } 
 " 

#project

  def 
  
 project 
 () 
  
 - 
>  
 String 
 
Alias Of: #project_id

The ID of the current project.

Returns
  • (String) — the Google Cloud project ID
Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 ( 
  
 project_id 
 : 
  
 "my-project" 
 , 
  
 credentials 
 : 
  
 "/path/to/keyfile.json" 
 ) 
 logging 
 . 
 project_id 
  
 #=> "my-project" 

#project_id

  def 
  
 project_id 
 () 
  
 - 
>  
 String 
 
Aliases

The ID of the current project.

Returns
  • (String) — the Google Cloud project ID
Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 ( 
  
 project_id 
 : 
  
 "my-project" 
 , 
  
 credentials 
 : 
  
 "/path/to/keyfile.json" 
 ) 
 logging 
 . 
 project_id 
  
 #=> "my-project" 

#resource

  def 
  
 resource 
 ( 
 type 
 , 
  
 labels 
  
 = 
  
 {}) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Resource 
 
Aliases

Creates a new monitored resource instance.

Parameters
  • type(String) — The type of resource, as represented by a ResourceDescriptor .
  • labels(Hash) — A set of labels that can be used to describe instances of this monitored resource type.
Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 resource 
  
 = 
  
 logging 
 . 
 resource 
  
 "gae_app" 
 , 
  
 "module_id" 
  
 = 
>  
 "1" 
 , 
  
 "version_id" 
  
 = 
>  
 "20150925t173233" 

#resource_descriptors

  def 
  
 resource_descriptors 
 ( 
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 ResourceDescriptor 
> 

Retrieves the list of monitored resource descriptors that are used by Stackdriver Logging.

Parameters
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of resource descriptors to return.
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 resource_descriptors 
  
 = 
  
 logging 
 . 
 resource_descriptors 
 resource_descriptors 
 . 
 each 
  
 do 
  
 | 
 rd 
 | 
  
 label_keys 
  
 = 
  
 rd 
 . 
 labels 
 . 
 map 
 ( 
& :key 
 ) 
 . 
 join 
 ( 
 ", " 
 ) 
  
 puts 
  
 " 
 #{ 
 rd 
 . 
 type 
 } 
 ( 
 #{ 
 label_keys 
 } 
 )" 
 end 

Pagination:

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 resource_descriptors 
  
 = 
  
 logging 
 . 
 resource_descriptors 
 resource_descriptors 
 . 
 all 
  
 do 
  
 | 
 rd 
 | 
  
 puts 
  
 rd 
 . 
 type 
 end 

#shared_async_writer

  def 
  
 shared_async_writer 
 () 
 

Returns a shared AsyncWriter for this Project. If this method is called multiple times, it will return the same object.

Example
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 async 
  
 = 
  
 logging 
 . 
 shared_async_writer 
 entry1 
  
 = 
  
 logging 
 . 
 entry 
  
 payload 
 : 
  
 "Job started." 
 entry2 
  
 = 
  
 logging 
 . 
 entry 
  
 payload 
 : 
  
 "Job completed." 
 labels 
  
 = 
  
 { 
  
 job_size 
 : 
  
 "large" 
 , 
  
 job_code 
 : 
  
 "red" 
  
 } 
 resource 
  
 = 
  
 logging 
 . 
 resource 
  
 "gae_app" 
 , 
  
 "module_id" 
  
 = 
>  
 "1" 
 , 
  
 "version_id" 
  
 = 
>  
 "20150925t173233" 
 async 
 . 
 write_entries 
  
 [ 
 entry1 
 , 
  
 entry2 
 ] 
 , 
  
 log_name 
 : 
  
 "my_app_log" 
 , 
  
 resource 
 : 
  
 resource 
 , 
  
 labels 
 : 
  
 labels 

#sink

  def 
  
 sink 
 ( 
 sink_name 
 ) 
  
 - 
>  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
 , 
  
 nil 
 

Retrieves a sink by name.

Parameter
  • sink_name(String) — Name of a sink.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sink 
  
 = 
  
 logging 
 . 
 sink 
  
 "existing-sink" 

By default nil will be returned if the sink does not exist.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sink 
  
 = 
  
 logging 
 . 
 sink 
  
 "non-existing-sink" 
  
 # nil 

#sinks

  def 
  
 sinks 
 ( 
 token 
 : 
  
 nil 
 , 
  
 max 
 : 
  
 nil 
 ) 
  
 - 
>  
 Array<Google 
 :: 
 Cloud 
 :: 
 Logging 
 :: 
 Sink 
> 
Aliases

Retrieves the list of sinks belonging to the project.

Parameters
  • token(String) (defaults to: nil) — A previously-returned page token representing part of the larger set of results to view.
  • max(Integer) (defaults to: nil) — Maximum number of sinks to return.
Returns
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sinks 
  
 = 
  
 logging 
 . 
 sinks 
 sinks 
 . 
 each 
  
 do 
  
 | 
 s 
 | 
  
 puts 
  
 " 
 #{ 
 s 
 . 
 name 
 } 
 : 
 #{ 
 s 
 . 
 filter 
 } 
 -> 
 #{ 
 s 
 . 
 destination 
 } 
 " 
 end 

Retrieve all sinks: (See Sink::List#all )

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 sinks 
  
 = 
  
 logging 
 . 
 sinks 
 sinks 
 . 
 all 
  
 do 
  
 | 
 s 
 | 
  
 puts 
  
 " 
 #{ 
 s 
 . 
 name 
 } 
 : 
 #{ 
 s 
 . 
 filter 
 } 
 -> 
 #{ 
 s 
 . 
 destination 
 } 
 " 
 end 

#write_entries

  def 
  
 write_entries 
 ( 
 entries 
 , 
  
 log_name 
 : 
  
 nil 
 , 
  
 resource 
 : 
  
 nil 
 , 
  
 labels 
 : 
  
 nil 
 , 
  
 partial_success 
 : 
  
 nil 
 ) 
  
 - 
>  
 Boolean 
 

Writes log entries to the Stackdriver Logging service.

If you write a collection of log entries, you can provide the log name, resource, and/or labels hash to be used for all of the entries, and omit these values from the individual entries.

Parameters
  • entries( Google::Cloud::Logging::Entry , Array< Google::Cloud::Logging::Entry >) — One or more entry objects to write. The log entries must have values for all required fields.
  • log_name(String) (defaults to: nil) — A default log ID for those log entries in entries that do not specify their own log_name . See also Entry#log_name= .
  • resource( Resource ) (defaults to: nil) — A default monitored resource for those log entries in entries that do not specify their own resource. See also Entry#resource .
  • labels(Hash{Symbol,String => String}) (defaults to: nil) — User-defined key:value items that are added to the labels field of each log entry in entries , except when a log entry specifies its own key:value item with the same key. See also Entry#labels= .
  • partial_success(Boolean) (defaults to: nil) — Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors when communicating to the Stackdriver Logging API.
Returns
  • (Boolean) — Returns true if the entries were written.
Examples
 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entry 
  
 = 
  
 logging 
 . 
 entry 
  
 payload 
 : 
  
 "Job started." 
 , 
  
 log_name 
 : 
  
 "my_app_log" 
 entry 
 . 
 resource 
 . 
 type 
  
 = 
  
 "gae_app" 
 entry 
 . 
 resource 
 . 
 labels 
 [ 
 :module_id 
 ] 
  
 = 
  
 "1" 
 entry 
 . 
 resource 
 . 
 labels 
 [ 
 :version_id 
 ] 
  
 = 
  
 "20150925t173233" 
 logging 
 . 
 write_entries 
  
 entry 

Provide a hash to write a JSON payload to the log:

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 payload 
  
 = 
  
 { 
  
 "stats" 
  
 = 
>  
 { 
  
 "a" 
  
 = 
>  
 8 
 , 
  
 "b" 
  
 = 
>  
 12 
 . 
 5 
 } 
  
 } 
 entry 
  
 = 
  
 logging 
 . 
 entry 
  
 payload 
 : 
  
 payload 
 , 
  
 log_name 
 : 
  
 "my_app_log" 
 entry 
 . 
 resource 
 . 
 type 
  
 = 
  
 "gae_app" 
 entry 
 . 
 resource 
 . 
 labels 
 [ 
 :module_id 
 ] 
  
 = 
  
 "1" 
 entry 
 . 
 resource 
 . 
 labels 
 [ 
 :version_id 
 ] 
  
 = 
  
 "20150925t173233" 
 logging 
 . 
 write_entries 
  
 entry 

Optionally pass log name, resource, and labels for entries.

 require 
  
 "google/cloud/logging" 
 logging 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
 Logging 
 . 
 new 
 entry1 
  
 = 
  
 logging 
 . 
 entry 
  
 payload 
 : 
  
 "Job started." 
 entry2 
  
 = 
  
 logging 
 . 
 entry 
  
 payload 
 : 
  
 "Job completed." 
 labels 
  
 = 
  
 { 
  
 job_size 
 : 
  
 "large" 
 , 
  
 job_code 
 : 
  
 "red" 
  
 } 
 resource 
  
 = 
  
 logging 
 . 
 resource 
  
 "gae_app" 
 , 
  
 "module_id" 
  
 = 
>  
 "1" 
 , 
  
 "version_id" 
  
 = 
>  
 "20150925t173233" 
 logging 
 . 
 write_entries 
  
 [ 
 entry1 
 , 
  
 entry2 
 ] 
 , 
  
 log_name 
 : 
  
 "my_app_log" 
 , 
  
 resource 
 : 
  
 resource 
 , 
  
 labels 
 : 
  
 labels 
 , 
  
 partial_success 
 : 
  
 true 
Design a Mobile Site
View Site in Mobile | Classic
Share by: