Stay organized with collections Save and categorize content based on your preferences.
An overview of logging in the Google Cloud C++ client libraries.
IntroductionThe client libraries never use logging to report errors, but logging can be enabled to help troubleshoot problems when the last error message does not provide a good enough indication of the root cause.
In general, we abide by the following principles:
std::clog
immediately before a GCP_LOG(FATAL)
terminates the process.#ifdef
/#endif
directives around them.if()
statement. At the very least it should not incur additional memory allocations or locks.The application needs to do two things to enable logging:
*Connection
object with a LoggingComponentsOption. Consult the documentation for each *Client
class to find what tracing components are available.At run-time, setting the GOOGLE_CLOUD_CPP_ENABLE_CLOG
to a non-empty value configures a LogBackend that uses std::clog
. Likewise, setting the GOOGLE_CLOUD_CPP_ENABLE_TRACING=a,b
will enable tracing for components a
and b
across all client objects. The most common components are auth
, rpc
, and rpc-streams
.
Note that while std::clog
is buffered, the framework will flush any log message at severity WARNING
or higher.
Use the GCP_LOG()
macro to log from a Google Cloud Platform C++ library:
void LibraryCode(ComplexThing const& thing) {
GCP_LOG(INFO) << "I am here";
if (thing.is_bad()) {
GCP_LOG(ERROR) << "Poor thing is bad: " << thing;
}
}
Example: Enable Logs to std::clog
To enable logs to std::clog
the application can call:
void AppCode() {
google::cloud::LogSink::EnableStdClog();
}
As previously noted, this can be switched at run-time using the GOOGLE_CLOUD_CPP_ENABLE_CLOG
environment variable.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["This page provides documentation for logging in the Google Cloud C++ client libraries, emphasizing that logging is controlled by the application developer and does not occur by default."],["The libraries offer logging capabilities to help troubleshoot issues beyond what the last error message might indicate, with a focus on minimal performance impact and no extra memory allocations."],["Enabling logs requires configuring a backend for log destinations and setting which components to log, typically done by initializing a `*Connection` object with `LoggingComponentsOption`."],["Logs can be directed to `std::clog` either programmatically via `LogSink::EnableStdClog()` or by setting the `GOOGLE_CLOUD_CPP_ENABLE_CLOG` environment variable at run-time."],["The `GCP_LOG()` macro is used within the libraries to create log entries, and the `GOOGLE_CLOUD_CPP_ENABLE_TRACING` environment variable allows enabling specific components across all client objects."]]],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4