# Release History ### 2.2.0 / 2021-03-10 #### Features * Drop support for Ruby 2.4 and add support for Ruby 3.0 ### 2.1.0 / 2020-09-16 #### Features * quota_project can be set via library configuration ### 2.0.0 / 2020-07-21 This is a major update that removes the "low-level" client interface code, and instead adds the new `google-cloud-logging-v2` gem as a dependency. The new dependency is a rewritten low-level client, produced by a next- generation client code generator, with improved performance and stability. This change should have no effect on the high-level interface that most users will use. The one exception is that the (mostly undocumented) `client_config` argument, for adjusting low-level parameters such as RPC retry settings on client objects, has been removed. If you need to adjust these parameters, use the configuration interface in `google-cloud-logging-v2`. Substantial changes have been made in the low-level interfaces, however. If you are using the low-level classes under the `Google::Cloud::Logging::V2` module, please review the docs for the new `google-cloud-logging-v2` gem. In particular: * Some classes have been renamed, notably the client class itself. * The client constructor takes a configuration block instead of configuration keyword arguments. * All RPC method arguments are now keyword arguments. ### 1.10.9 / 2020-06-17 #### Documentation * Improved field descriptions in the low-level interface. ### 1.10.8 / 2020-06-12 #### Documentation * Provide more details on low-level monitored resource data types ### 1.10.7 / 2020-05-28 #### Documentation * Fix a few broken links ### 1.10.6 / 2020-05-19 #### Bug Fixes * Adjusted some default timeout and retry settings ### 1.10.5 / 2020-05-05 #### Bug Fixes * Prevent error when calling stop! on unused AsyncWriter ### 1.10.4 / 2020-04-20 #### Documentation * Fix some broken links in the Project and Sink docs ### 1.10.3 / 2020-04-06 #### Documentation * Fix some broken links in the low-level interface documentation. ### 1.10.2 / 2020-04-01 #### Bug Fixes * Restore some path helpers in the low-level interface. ### 1.10.1 / 2020-03-19 #### Bug Fixes * Restore billing, folder, and organization path helpers in low-level interface ### 1.10.0 / 2020-03-16 #### Features * support separate project setting for quota/billing #### Low-level interface updates * Add LogBucket * Add ConfigServiceV2Client#list_buckets * Add ConfigServiceV2Client#get_bucket * Add ConfigServiceV2Client#update_bucket * Add LifecycleState enum * Change name to positional param in ConfigServiceV2Client#get_cmek_settings * Change name and cmek_settings to positional params in ConfigServiceV2Client#update_cmek_settings * Remove billing, folder, and organization path helpers from ConfigServiceV2Client * Remove LogEntry#metadata * Remove previously deprecated project_ids from LoggingServiceV2Client#list_log_entries * Remove log_path helpers from LoggingServiceV2Client * Rename ConfigServiceV2Client#billing_path to #billing_account_path * Rename LoggingServiceV2Client#billing_path to #billing_account_path * Rename MetricsServiceV2Client#metric_path to #log_metric_path * Update network configuration settings ### 1.9.5 / 2020-02-24 #### Documentation * Fix doc links to Cmek methods in lower-level client ### 1.9.4 / 2020-01-23 #### Documentation * Update copyright year ### 1.9.3 / 2019-12-20 #### Documentation * Update description of MetricDescriptor#unit in lower-level API ### 1.9.2 / 2019-12-18 #### Bug Fixes * Fix MonitorMixin usage on Ruby 2.7 * Ruby 2.7 will error if new_cond is called before super(). * Make the call to super() be the first call in initialize #### Documentation * Update docs for lower-level API call MetricDescriptorMetadata#unit ### 1.9.1 / 2019-11-06 #### Bug Fixes * Update minimum runtime dependencies ### 1.9.0 / 2019-10-29 This release requires Ruby 2.4 or later. #### Documentation * Clarify which Google Cloud Platform environments support automatic authentication ### 1.8.0 / 2019-10-03 #### Features * Support additional fields of LogSink in the low-level interface * Add LogSink#create_time field * Add LogSink#update_time field * Add LogSink#bigquery_options field * Add BigQueryOptions type * Update documentation ### 1.7.0 / 2019-08-23 #### Features * Support overriding of service endpoint ### 1.6.6 / 2019-07-31 * Fix max threads setting in thread pools * Thread pools once again limit the number of threads allocated. * Update documentation links ### 1.6.5 / 2019-07-08 * Support overriding service host and port in the low-level interface. ### 1.6.4 / 2019-06-11 * Add documentation for MetricDescriptor#launch_stage and MonitoredResourceDescriptor#launch_stage. * Deprecate MetricDescriptor:: MetricDescriptorMetadata#launch_stage * Use VERSION constant in GAPIC client ### 1.6.3 / 2019-04-29 * Add AUTHENTICATION.md guide. * Update generated documentation. * Update generated code examples. * Extract gRPC header values from request. ### 1.6.2 / 2019-02-13 * Fix bug (typo) in retrieving default on_error proc. ### 1.6.1 / 2019-02-07 * Update concurrent-ruby dependency ### 1.6.0 / 2019-01-22 * AsyncWriter buffer entries and make batch API calls * Update AsyncWriter to buffer log entries and batch API calls. * Maintain backwards compatibility with the previous AsyncWriter's public API, although the implementation is changed. * Back pressure is applied by limiting the number of queued API calls. Errors will now be raised when there are not enough resources. * Errors are reported using the AsyncWriter#on_error callback. * Pending log entries are sent before the process closes using at_exit. * Add Logging on_error configuration. * Add default insert_id value for Entry * Add Entry.insert_id * Add default insert_id value for Entry An Entry object is assigned an insert_id when created so that if the Entry object gets persisted multiple times it would know its insert_id value and not attempt to generate a new one for each persist attempt. An Entry object will still be considered empty if the only value it has is the insert_id. * (This change does not use SecureRandom for performance reasons.) * Add Logging trace_sampled * Add Entry#trace_sampled attribute * Add trace_sampled to Logger::RequestInfo * Changes to Rails default Logger * Delay updating the Rails default logger until the first web request. * This will avoid issues with forking processes and gRPC resources. * This is accomplished by adding the on_init argument to middleware. * Add Railtie.set_default_logger * This method can be called post-fork to update the Rails default logger. * Make use of Credentials#project_id * Use Credentials#project_id If a project_id is not provided, use the value on the Credentials object. This value was added in googleauth 0.7.0. * Loosen googleauth dependency Allow for new releases up to 0.10. The googleauth devs have committed to maintaining the current API and will not make backwards compatible changes before 0.10. * Direct logs for "/healthz" requests to the health check log. * Update documentation. ### 1.5.7 / 2018-11-15 * Add Google::Logging::V2::LogEntry#trace_sampled. * Update low-level documentation. ### 1.5.6 / 2018-10-03 * Use concurrent-ruby and ThreadLocalVar in Logger. * Remove Monitor and synchronize blocks. * Logger#thread_ids now only returns the current thread. ### 1.5.5 / 2018-09-20 * Make Logger thread-safe. * Update Logging generated files. * Add Metric's MetricDescriptorMetadata. * Update documentation. * Change documentation URL to googleapis GitHub org. * Fix circular require warning. ### 1.5.4 / 2018-09-12 * Add missing documentation files to package. ### 1.5.3 / 2018-09-10 * Update documentation. ### 1.5.2 / 2018-08-21 * Update documentation. ### 1.5.1 / 2018-07-05 * Fix bug in List classes by propagating arguments needed for pagination calls. * Fix issue when disabling Stackdriver components with Rails.env.production. * Reduce string memory usage. * Add documentation for enabling gRPC logging. ### 1.5.0 / 2018-02-27 * Use Google Cloud Shared Configuration. * Deprecated Logging Sink attributes. ### 1.4.0 / 2017-12-19 * Update google-gax dependency to 1.0. ### 1.3.2 / 2017-11-20 * Refresh GAPIC layer (low-level API) based on updates to Protobuf types. ### 1.3.1 / 2017-11-15 * Fix credentials verification bug in Railtie. ### 1.3.0 / 2017-11-14 * Add `Google::Cloud::Logging::Credentials` class. * Rename constructor arguments to `project_id` and `credentials`. (The previous arguments `project` and `keyfile` are still supported.) * Document `Google::Auth::Credentials` as `credentials` value. * Add `partial_success` optional argument to `Project#write_entries`. * Deprecate `HttpRequest#method`, use `HttpRequest#request_method` instead. * Update generated low level GAPIC code. * Updated `google-gax` (`grpc`, `google-protobuf`), `googleauth` dependencies. ### 1.2.3 / 2017-09-27 * Updated protobuf classes. * Updated README. ### 1.2.2 / 2017-09-08 * Add `labels` configuration option to `Google::Cloud::Logging::Middleware` for Rails and other Rack-based framework integrations. ### 1.2.1 / 2017-07-11 * stackdriver-core 1.2.0 release ### 1.2.0 / 2017-07-11 * Update `labels` parameter in `Google::Cloud::Logging::Logger#initialize` to default to empty hash. * Update `Google::Cloud::Logging::Logger` to support the following `ActiveSupport::Logger` methods: `:local_level`, `:local_level=`, `:silence`, `:silencer`, and `:unknown?`. * Update GAPIC configuration to exclude `UNAVAILABLE` errors from automatic retry. * Update gem spec homepage links. ### 1.1.0 / 2017-05-25 * Introduce new `Google::Cloud::Logging.configure` instrumentation configuration interface. * Google::Cloud::Logger now sends extra trace context information in log entries. ### 1.0.1 / 2017-04-21 * Middleware constructor can be called without an explicit logger. This should make integration in non-Rails applications simpler. * If Rails integration fails due to an auth error, the notice is now printed to STDOUT rather than STDERR, which should make it a bit less scary when displayed in Docker output. ### 1.0.0 / 2017-03-31 * Release 1.0 * Added `#trace` and `#source_location` to Entry * Added listing of logs for the project * Updated documentation * Automatic retry on `UNAVAILABLE` errors ### 0.24.2 / 2017-03-03 * No public API changes. * Update GRPC header value sent to the Logging API. ### 0.24.1 / 2017-03-01 * No public API changes. * Update GRPC header value sent to the Logging API. * Low level API adds new Protobuf types and GAPIC methods. ### 0.24.0 / 2017-02-21 * Fix GRPC retry bug * The client_config data structure has replaced retry_codes/retry_codes_def with retry_codes * Update GRPC/Protobuf/GAX dependencies ### 0.23.2 / 2016-12-27 * `Google::Cloud::Logging::Logger` depended on standard logger but didn't require it. Fixed. ### 0.23.1 / 2016-12-22 * Use the `stackdriver-core` gem to obtain Trace ID, for compatibility with the `google-cloud-trace` gem. * `Google::Cloud::Logging::Logger` now understands all remaining standard Logger methods. * Clean up `AsyncWriter` threads on VM exit, to prevent gRPC from crashing if it's still in the middle of a call. * Support setting log name by path, and direct App Engine health checks to a separate log by default. * Minor improvements to warning messages. ### 0.23.0 / 2016-12-8 * Add `resources` method argument to `Project#entries` * Deprecate `projects` method argument from `Project#entries` * Add `start_at`, `end_at`, and `writer_identity` attributes to `Sink` * Add `start_at`, `end_at`, and `unique_writer_identity` parameters to `Project#create_sink` * Add `unique_writer_identity` parameter to `Sink#save` * Many documentation improvements * Add documentation for Low Level API ### 0.21.2 / 2016-11-15 * Fix issue with uninitialized VERSION (remi) ### 0.21.1 / 2016-11-4 * Upgraded Google::Cloud::Logging::Railtie to use AsyncWriter * Added Rails configuration for custom monitored resource ### 0.21.0 / 2016-10-20 * New service constructor Google::Cloud::Logging.new * New constructor argument client_config * Logger is now asynchronous * AsyncWriter added * Rails and Rack integration added ### 0.20.1 / 2016-09-02 * Fix an issue with the GRPC client and forked sub-processes ### 0.20.0 / 2016-08-26 This gem contains the Stackdriver Logging service implementation for the `google-cloud` gem. The `google-cloud` gem replaces the old `gcloud` gem. Legacy code can continue to use the `gcloud` gem. * Namespace is now `Google::Cloud` * The `google-cloud` gem is now an umbrella package for individual gems