Reference documentation and code samples for the google-cloud-logging class Google::Cloud::Logging::Logger.
Logger
An API-compatible replacement for ruby's Logger that logs to the Stackdriver Logging Service.
Inherits
- Object
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
Methods
#<<
def <<(msg)
Logs the given message at UNKNOWN severity.
- msg (String) — The log entry payload as a string.
#add
def add(severity, message = nil, progname = nil)
Log a message if the given severity is high enough. This is the generic logging method. Users will be more inclined to use #debug, #info, #warn, #error, and #fatal.
- severity (Integer, String, Symbol) — the integer code for or the name of the severity level
- message (String, Hash) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer).
- — Evaluates to the message to log. This is not evaluated unless the logger's level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.
#add_request_info
def add_request_info(info: nil, env: nil, trace_id: nil, log_name: nil, trace_sampled: nil)
Associate request data with the current Thread. You may provide either the individual pieces of data (trace ID, log name) or a populated RequestInfo object.
- info (RequestInfo) (defaults to: nil) — Info about the current request. Optional. If not present, a new RequestInfo is created using the remaining parameters.
-
trace_id (String, nil) (defaults to: nil) — The trace ID, or
nil
if no trace ID should be logged. - log_name (String, nil) (defaults to: nil) — The log name to use, or nil to use this logger's default.
-
env (Hash, nil) (defaults to: nil) — The request's Rack environment or
nil
if not available.
#add_trace_id
def add_trace_id(trace_id)
Track a given trace_id by associating it with the current Thread
#close
def close()
Close the logging "device". This effectively disables logging from this logger; any further log messages will be silently ignored. The logger may be re-enabled by calling #reopen.
#datetime_format
def datetime_format()
This logger does not use a formatter, but it implements this attribute for API compatibility with the standard Logger.
#datetime_format=
def datetime_format=(value)
This logger does not use a formatter, but it implements this attribute for API compatibility with the standard Logger.
#debug
def debug(message = nil, &block)
Log a DEBUG
entry.
- message (String, Hash) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer).
- — Evaluates to the message to log. This is not evaluated unless the logger's level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.
#debug?
def debug?() -> Boolean
Returns true
if the current severity level allows for sending
DEBUG
messages.
- (Boolean)
#delete_request_info
def delete_request_info() -> RequestInfo
Untrack the RequestInfo that's associated with current Thread
- (RequestInfo) — The info that's being deleted
#delete_trace_id
def delete_trace_id() -> RequestInfo
Untrack the RequestInfo that's associated with current Thread
- (RequestInfo) — The info that's being deleted
#error
def error(message = nil, &block)
Log an ERROR
entry.
- message (String, Hash) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer).
- — Evaluates to the message to log. This is not evaluated unless the logger's level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.
#error?
def error?() -> Boolean
Returns true
if the current severity level allows for sending
ERROR
messages.
- (Boolean)
#fatal
def fatal(message = nil, &block)
Log a FATAL
entry.
- message (String, Hash) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer).
- — Evaluates to the message to log. This is not evaluated unless the logger's level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.
#fatal?
def fatal?() -> Boolean
Returns true
if the current severity level allows for sending
FATAL
messages.
- (Boolean)
#flush
def flush()
No-op method. Created to match the spec of ActiveSupport::Logger#flush method when used in Rails application.
#formatter
def formatter()
This logger does not use a formatter, but it provides a default Logger::Formatter for API compatibility with the standard Logger.
#formatter=
def formatter=(value)
This logger does not use a formatter, but it provides a default Logger::Formatter for API compatibility with the standard Logger.
#info
def info(message = nil, &block)
Log an INFO
entry.
- message (String, Hash) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer).
- — Evaluates to the message to log. This is not evaluated unless the logger's level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.
#info?
def info?() -> Boolean
Returns true
if the current severity level allows for sending INFO
messages.
- (Boolean)
#initialize
def initialize(writer, log_name, resource, labels = nil) -> Google::Cloud::Logging::Logger
Create a new Logger instance.
-
writer (#write_entries) — The object that will transmit log
entries. Generally, to create a logger that blocks on transmitting
log entries, pass the Project; otherwise, to create a logger that
transmits log entries in the background, pass an AsyncWriter. You
may also pass any other object that responds to
#write_entries
. - 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.
- (Google::Cloud::Logging::Logger) — a Logger object that can be used in place of a ruby standard library logger object.
require "google/cloud/logging" logging = Google::Cloud::Logging.new writer = logging.async_writer max_queue_size: 1000 resource = logging.resource "gae_app", labels: { "module_id" => "1", "version_id" => "20150925t173233" } logger = Google::Cloud::Logging::Logger.new writer, "my_app_log", resource, env: :production logger.info "Job started."
#labels
def labels()
The Google Cloud labels to write the log entry with.
#level
def level()
The logging severity threshold (e.g. Logger::INFO
)
#level=
def level=(severity)
Sets the logging severity level.
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.level = "INFO" logger.debug "Job started." # No log entry written
#local_level
def local_level()
The logging severity threshold (e.g. Logger::INFO
)
#local_level=
def local_level=(severity)
Sets the logging severity level.
- severity (Integer, String, Symbol) — the integer code for or the name of the severity level
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.level = "INFO" logger.debug "Job started." # No log entry written
#log
def log(severity, message = nil, progname = nil)
Log a message if the given severity is high enough. This is the generic logging method. Users will be more inclined to use #debug, #info, #warn, #error, and #fatal.
- severity (Integer, String, Symbol) — the integer code for or the name of the severity level
- message (String, Hash) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer).
- — Evaluates to the message to log. This is not evaluated unless the logger's level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.
#log_name
def log_name()
The Google Cloud log_name to write the log entry with.
#progname
def progname()
The Google Cloud log_name to write the log entry with.
#progname=
def progname=(name)
This logger treats progname as an alias for log_name.
#project
def project()
The project ID this logger is sending data to. If set, this value is used to set the trace field of log entries.
#project=
def project=(value)
The project ID this logger is sending data to. If set, this value is used to set the trace field of log entries.
#reopen
def reopen(_logdev = nil)
Re-enable logging if the logger has been closed.
Note that this method accepts a "logdev" argument for compatibility with the standard Ruby Logger class; however, this argument is ignored because this logger does not use a log device.
#request_info
def request_info() -> RequestInfo, nil
Get the request data for the current Thread
-
(RequestInfo, nil) — The request data for the current thread,
or
nil
if there is no data set.
#resource
def resource()
The Google Cloud resource to write the log entry with.
#sev_threshold
def sev_threshold()
The logging severity threshold (e.g. Logger::INFO
)
#sev_threshold=
def sev_threshold=(severity)
Sets the logging severity level.
- severity (Integer, String, Symbol) — the integer code for or the name of the severity level
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.level = "INFO" logger.debug "Job started." # No log entry written
#silence
def silence(temp_level = ::Logger::ERROR)
Filter out low severity messages within block.
- temp_level (Integer) — Severity threshold to filter within the block. Messages with lower severity will be blocked. Default ::Logger::ERROR
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.silence do logger.info "Info message" # No log entry written logger.error "Error message" # Log entry written end
#silencer
def silencer()
Boolean flag that indicates whether this logger can be silenced or not.
#silencer=
def silencer=(value)
Boolean flag that indicates whether this logger can be silenced or not.
#trace_ids
def trace_ids()
A Hash of Thread IDs to Stackdriver request trace ID. The Stackdriver trace ID is a shared request identifier across all Stackdriver services.
This method is deprecated and returns a Hash containing only the current Thread ID/trace_id now.
#unknown
def unknown(message = nil, &block)
Log an UNKNOWN
entry. This will be printed no matter what the
logger's current severity level is.
- message (String, Hash) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer).
- — Evaluates to the message to log. This is not evaluated unless the logger's level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.
#unknown?
def unknown?() -> Boolean
Returns true
if the current severity level allows for sending
UNKNOWN
messages.
- (Boolean)
#warn
def warn(message = nil, &block)
Log a WARN
entry.
- message (String, Hash) — The log entry payload, represented as either a string, a hash (JSON), or a hash (protocol buffer).
- — Evaluates to the message to log. This is not evaluated unless the logger's level is sufficient to log the message. This allows you to create potentially expensive logging messages that are only called when the logger is configured to show them.
#warn?
def warn?() -> Boolean
Returns true
if the current severity level allows for sending WARN
messages.
- (Boolean)
#writer
def writer()
The Google Cloud writer object that calls to #write_entries
are made
on. Either an AsyncWriter or Project object.