Reference documentation and code samples for the Cloud Logging API 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
nilif 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
nilif 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?() -> BooleanReturns true if the current severity level allows for sending
DEBUG messages.
- (Boolean)
#delete_request_info
def delete_request_info() -> RequestInfoUntrack the RequestInfo that's associated with current Thread
- (RequestInfo) — The info that's being deleted
#delete_trace_id
def delete_trace_id() -> RequestInfoUntrack 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?() -> BooleanReturns 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?() -> BooleanReturns 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?() -> BooleanReturns true if the current severity level allows for sending INFO
messages.
- (Boolean)
#initialize
def initialize(writer, log_name, resource, labels = nil) -> Google::Cloud::Logging::LoggerCreate 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, nilGet the request data for the current Thread
-
(RequestInfo, nil) — The request data for the current thread,
or
nilif 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?() -> BooleanReturns 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?() -> BooleanReturns 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.