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

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

Railtie

Adds the Middleware to Rack in a Rails environment. The middleware will set env['rack.logger'] to a Logger instance to be used by the Rails application.

The middleware is loaded only when certain conditions are met. These conditions are when the configuration Google::Cloud.configure.use_logging (also available as Rails.application.config.google_cloud.use_logging for a Rails application) is set to true, or, if the configuration is left unset but Rails.env.production? is true.

When loaded, the Middleware will be inserted before the Rails::Rack::Logger Middleware, which allows it to set the env['rack.logger'] in place of Rails's default logger. See the Configuration Guide on how to configure the Railtie and Middleware.

Inherits

  • Rails::Railtie

Methods

.set_default_logger

def self.set_default_logger()

This should be called once the application determines that it is safe to start background threads and open gRPC connections. It informs the middleware system that it is safe to use Google Cloud Logging. This is called during Rails initialization when the set_default_logger_on_rails_init configuration is set.

Generally, this matters if the application forks worker processes; this method should be called only after workers are forked, since threads and network connections interact badly with fork. For example, when running Puma in clustered mode, this method should be called in an on_worker_boot block.

If the application does no forking, this method can be called any time early in the application initialization process. Or by setting the set_default_logger_on_rails_init configuration.

If the set_default_logger_on_rails_init configuration is not set, and Railtie.set_default_logger is not called in a post-fork hook, the default Rails logger object will not be set to use the Google Cloud Logging Logger object. For best results, an application should call this method at the appropriate time, such as a post-fork hook.