public interface Logging extends AutoCloseable, Service<LoggingOptions>
Methods
create(Exclusion exclusion)
public abstract Exclusion create(Exclusion exclusion)
Creates a new exclusion in a specified parent resource. Only log entries belonging to that resource can be excluded. You can have up to 10 exclusions in a resource.
Example of creating the exclusion:
{ @code String exclusionName = "my_exclusion_name"; Exclusion exclusion = Exclusion.of(exclusionName, "resource.type=gcs_bucket severity
Name | Description |
exclusion | Exclusion |
Type | Description |
Exclusion | the created exclusion |
create(MetricInfo metric)
public abstract Metric create(MetricInfo metric)
Creates a new metric.
Example of creating a metric for logs with severity higher or equal to ERROR.
{ @code String metricName = "my_metric_name"; MetricInfo metricInfo = MetricInfo.of(metricName, "severity>=ERROR"); Metric metric = logging.create(metricInfo); }
Name | Description |
metric | MetricInfo |
Type | Description |
Metric | the created metric |
create(SinkInfo sink)
public abstract Sink create(SinkInfo sink)
Creates a new sink.
Example of creating a sink to export logs to a BigQuery dataset (in the LoggingOptions#getProjectId() project).
{ @code String sinkName = "my_sink_name"; String datasetName = "my_dataset"; SinkInfo sinkInfo = SinkInfo.of(sinkName, DatasetDestination.of(datasetName)); Sink sink = logging.create(sinkInfo); }
Name | Description |
sink | SinkInfo |
Type | Description |
Sink | the created sink |
createAsync(Exclusion exclusion)
public abstract ApiFuture<Exclusion> createAsync(Exclusion exclusion)
Sends a request to create the exclusion. This method returns an ApiFuture
object to
consume the result. ApiFuture#get() returns the created exclusion.
Example of asynchronously creating the exclusion:
{ @code String exclusionName = "my_exclusion_name"; Exclusion exclusion = Exclusion.of(exclusionName, "resource.type=gcs_bucket severity
Name | Description |
exclusion | Exclusion |
Type | Description |
ApiFuture<Exclusion> |
createAsync(MetricInfo metric)
public abstract ApiFuture<Metric> createAsync(MetricInfo metric)
Sends a request for creating a metric. This method returns a ApiFuture
object to
consume the result. ApiFuture#get() returns the created metric.
Example of asynchronously creating a metric for logs with severity higher or equal to ERROR.
{ @code String metricName = "my_metric_name"; MetricInfo metricInfo = MetricInfo.of(metricName, "severity>=ERROR"); ApiFuture<Metric> future = logging.createAsync(metricInfo); // ... Metric metric = future.get(); }
Name | Description |
metric | MetricInfo |
Type | Description |
ApiFuture<Metric> |
createAsync(SinkInfo sink)
public abstract ApiFuture<Sink> createAsync(SinkInfo sink)
Sends a request for creating a sink. This method returns a ApiFuture
object to consume
the result. ApiFuture#get() returns the created sink.
Example of asynchronously creating a sink to export logs to a BigQuery dataset (in the LoggingOptions#getProjectId() project).
{ @code String sinkName = "my_sink_name"; String datasetName = "my_dataset"; SinkInfo sinkInfo = SinkInfo.of(sinkName, DatasetDestination.of(datasetName)); ApiFuture<Sink> future = logging.createAsync(sinkInfo); // ... Sink sink = future.get(); }
Name | Description |
sink | SinkInfo |
Type | Description |
ApiFuture<Sink> |
deleteExclusion(String exclusion)
public abstract boolean deleteExclusion(String exclusion)
Deletes the requested exclusion.
Example of deleting the exclusion:
{ @code String exclusionName = "my_exclusion_name"; boolean deleted = logging.deleteExclusion(exclusionName); if (deleted) { // the exclusion was deleted } else { // the exclusion was not found } }
Name | Description |
exclusion | String |
Type | Description |
boolean |
|
deleteExclusionAsync(String exclusion)
public abstract ApiFuture<Boolean> deleteExclusionAsync(String exclusion)
Sends a request to delete an exclusion. This method returns an ApiFuture
object to
consume the result. ApiFuture#get() returns true
if the exclusion was deleted,
false
if it was not found.
Example of asynchronously deleting the exclusion:
{ @code String exclusionName = "my_exclusion_name"; ApiFuture<Boolean> future = logging.deleteExclusionAsync(metricName); // ... boolean deleted = future.get(); if (deleted) { // the exclusion was deleted } else { // the exclusion was not found } }
Name | Description |
exclusion | String |
Type | Description |
ApiFuture<Boolean> |
deleteLog(String log)
public abstract boolean deleteLog(String log)
Deletes a log and all its log entries. The log will reappear if new entries are written to it.
Example of deleting a log.
{ @code String logName = "my_log_name"; boolean deleted = logging.deleteLog(logName); if (deleted) { // the log was deleted } else { // the log was not found } }
Name | Description |
log | String |
Type | Description |
boolean |
|
deleteLog(String log, LogDestinationName destination)
public default boolean deleteLog(String log, LogDestinationName destination)
Deletes a log and all its log entries for given log destination (see 'logName' parameter in https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry). The log will reappear if new entries are written to it.
Example of deleting a log by folder destination.
{ @code String logName = "my_log_name"; String folder = "my_folder"; boolean deleted = logging.deleteLog(logName, LogDestinationName.folder(folder)); if (deleted) { // the log was deleted } else { // the log was not found } }
Name | Description |
log | String |
destination | LogDestinationName |
Type | Description |
boolean |
|
deleteLogAsync(String log)
public abstract ApiFuture<Boolean> deleteLogAsync(String log)
Sends a request for deleting a log and all its log entries. This method returns a
ApiFuture
object to consume the result. ApiFuture#get() returns true
if the
log was deleted, false
if it was not found.
Example of asynchronously deleting a log.
{ @code String logName = "my_log_name"; ApiFuture<Boolean> future = logging.deleteLogAsync(logName); // ... boolean deleted = future.get(); if (deleted) { // the log was deleted } else { // the log was not found } }
Name | Description |
log | String |
Type | Description |
ApiFuture<Boolean> |
deleteLogAsync(String log, LogDestinationName destination)
public default ApiFuture<Boolean> deleteLogAsync(String log, LogDestinationName destination)
Sends a request for deleting a log and all its log entries for given log destination (see
'logName' parameter in https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry).
This method returns a ApiFuture
object to consume the result. ApiFuture#get()
returns true
if the log was deleted, false
if it was not found.
Example of asynchronously deleting a log by folder destination.
{ @code String logName = "my_log_name"; String folder = "my_folder"; ApiFuture<Boolean> future = logging.deleteLogAsync(logName, LogDestinationName.folder(folder)); // ... boolean deleted = future.get(); if (deleted) { // the log was deleted } else { // the log was not found } }
Name | Description |
log | String |
destination | LogDestinationName |
Type | Description |
ApiFuture<Boolean> |
deleteMetric(String metric)
public abstract boolean deleteMetric(String metric)
Deletes the requested metric.
Example of deleting a metric.
{ @code String metricName = "my_metric_name"; boolean deleted = logging.deleteMetric(metricName); if (deleted) { // the metric was deleted } else { // the metric was not found } }
Name | Description |
metric | String |
Type | Description |
boolean |
|
deleteMetricAsync(String metric)
public abstract ApiFuture<Boolean> deleteMetricAsync(String metric)
Sends a request for deleting a metric. This method returns a ApiFuture
object to
consume the result. ApiFuture#get() returns true
if the metric was deleted,
false
if it was not found.
Example of asynchronously deleting a metric.
{ @code String metricName = "my_metric_name"; ApiFuture<Boolean> future = logging.deleteMetricAsync(metricName); // ... boolean deleted = future.get(); if (deleted) { // the metric was deleted } else { // the metric was not found } }
Name | Description |
metric | String |
Type | Description |
ApiFuture<Boolean> |
deleteSink(String sink)
public abstract boolean deleteSink(String sink)
Deletes the requested sink.
Example of deleting a sink.
{ @code String sinkName = "my_sink_name"; boolean deleted = logging.deleteSink(sinkName); if (deleted) { // the sink was deleted } else { // the sink was not found } }
Name | Description |
sink | String |
Type | Description |
boolean |
|
deleteSinkAsync(String sink)
public abstract ApiFuture<Boolean> deleteSinkAsync(String sink)
Sends a request for deleting a sink. This method returns a ApiFuture
object to consume
the result. ApiFuture#get() returns true
if the sink was deleted, false
if it was not found.
Example of asynchronously deleting a sink.
{ @code String sinkName = "my_sink_name"; ApiFuture<Boolean> future = logging.deleteSinkAsync(sinkName); // ... boolean deleted = future.get(); if (deleted) { // the sink was deleted } else { // the sink was not found } }
Name | Description |
sink | String |
Type | Description |
ApiFuture<Boolean> |
flush()
public abstract void flush()
Flushes any pending asynchronous logging writes. Logs are automatically flushed based on time and message count that be configured via com.google.api.gax.batching.BatchingSettings, Logs are also flushed if enabled, at or above flush severity, see #setFlushSeverity. Logging frameworks require support for an explicit flush. See usage in the java.util.logging handlerLoggingHandler.
getExclusion(String exclusion)
public abstract Exclusion getExclusion(String exclusion)
Gets the description of an exclusion or null
if not found.
Example of getting the description of an exclusion:
{ @code String exclusionName = "my_exclusion_name"; Exclusion exclusion = logging.getExclusion(exclusionName); if (exclusion == null) { // exclusion was not found } }
Name | Description |
exclusion | String |
Type | Description |
Exclusion |
getExclusionAsync(String exclusion)
public abstract ApiFuture<Exclusion> getExclusionAsync(String exclusion)
Sends a request to get the description of an exclusion . This method returns an
ApiFuture
object to consume the result. ApiFuture#get() returns the requested
exclusion or null
if not found.
Example of asynchronously getting the exclusion:
{ @code String exclusionName = "my_exclusion_name"; ApiFuture<Exclusion> future = logging.getExclusionAsync(exclusionName); // ... Exclusion exclusion = future.get(); if (exclusion == null) { // exclusion was not found } }
Name | Description |
exclusion | String |
Type | Description |
ApiFuture<Exclusion> |
getFlushSeverity()
public abstract Severity getFlushSeverity()
Type | Description |
Severity |
getMetric(String metric)
public abstract Metric getMetric(String metric)
Returns the requested metric or null
if not found.
Example of getting a metric.
{ @code String metricName = "my_metric_name"; Metric metric = logging.getMetric(metricName); if (metric == null) { // metric was not found } }
Name | Description |
metric | String |
Type | Description |
Metric |
getMetricAsync(String metric)
public abstract ApiFuture<Metric> getMetricAsync(String metric)
Sends a request for getting a metric. This method returns a ApiFuture
object to consume
the result. ApiFuture#get() returns the requested metric or null
if not found.
Example of asynchronously getting a metric.
{ @code String metricName = "my_metric_name"; ApiFuture<Metric> future = logging.getMetricAsync(metricName); // ... Metric metric = future.get(); if (metric == null) { // metric was not found } }
Name | Description |
metric | String |
Type | Description |
ApiFuture<Metric> |
getSink(String sink)
public abstract Sink getSink(String sink)
Returns the requested sink or null
if not found.
Example of getting a sink.
{ @code String sinkName = "my_sink_name"; Sink sink = logging.getSink(sinkName); if (sink == null) { // sink was not found } }
Name | Description |
sink | String |
Type | Description |
Sink |
getSinkAsync(String sink)
public abstract ApiFuture<Sink> getSinkAsync(String sink)
Sends a request for getting a sink. This method returns a ApiFuture
object to consume
the result. ApiFuture#get() returns the requested sink or null
if not found.
Example of asynchronously getting a sink.
{ @code String sinkName = "my_sink_name"; ApiFuture<Sink> future = logging.getSinkAsync(sinkName); // ... Sink sink = future.get(); if (sink == null) { // sink was not found } }
Name | Description |
sink | String |
Type | Description |
ApiFuture<Sink> |
getWriteSynchronicity()
public abstract Synchronicity getWriteSynchronicity()
Retrieves current set synchronicity Synchronicity of logging writes.
Type | Description |
Synchronicity |
listExclusions(Logging.ListOption[] options)
public abstract Page<Exclusion> listExclusions(Logging.ListOption[] options)
Lists the exclusion. This method returns a Page object that can be used to consume paginated results. Use ListOption to specify the page size or the page token from which to start listing exclusion.
Example of listing exclusions, specifying the page size:
{ @code Page<Exclusion> exclusions = logging.listMetrics(ListOption.pageSize(100)); Iterator<Exclusion> exclusionIterator = exclusions.iterateAll().iterator(); while (exclusionIterator.hasNext()) { Exclusion exclusion = exclusionIterator.next(); // do something with the exclusion } }
Name | Description |
options | ListOption[] |
Type | Description |
Page<Exclusion> |
listExclusionsAsync(Logging.ListOption[] options)
public abstract ApiFuture<AsyncPage<Exclusion>> listExclusionsAsync(Logging.ListOption[] options)
Sends a request for listing exclusions. This method returns an ApiFuture
object to
consume the result. ApiFuture#get() returns an AsyncPage object that can be
used to asynchronously handle paginated results. Use ListOption to specify the page
size or the page token from which to start listing exclusions.
Example of asynchronously listing exclusions, specifying the page size:
ApiFuture<AsyncPage<Exclusion>> future = logging.listExclusionsAsync(ListOption.pageSize(100));
// ...
AsyncPage<Exclusion> exclusions = future.get();
Iterator<Exclusion> exclusionIterator = exclusions.iterateAll().iterator();
while (exclusionIterator.hasNext()) {
Exclusion exclusion = exclusionIterator.next();
// do something with the exclusion
}
Name | Description |
options | ListOption[] |
Type | Description |
ApiFuture<AsyncPage<Exclusion>> |
listLogEntries(Logging.EntryListOption[] options)
public abstract Page<LogEntry> listLogEntries(Logging.EntryListOption[] options)
Lists log entries. This method returns a Page object that can be used to consume paginated results. Use EntryListOption#pageSize(int) to specify the page size. Use EntryListOption#pageToken(String) to specify the page token from which to start listing entries. Use EntryListOption#sortOrder(SortingField, SortingOrder) to sort log entries according to your preferred order (default is most-recent last). Use EntryListOption#filter(String) to filter listed log entries. By default a 24 hour filter is applied.
Example of listing log entries for a specific log.
{ @code String filter = "logName=projects/my_project_id/logs/my_log_name"; Page<LogEntry> entries = logging.listLogEntries(EntryListOption.filter(filter)); Iterator<LogEntry> entryIterator = entries.iterateAll().iterator(); while (entryIterator.hasNext()) { LogEntry entry = entryIterator.next(); // do something with the entry } }
Name | Description |
options | EntryListOption[] |
Type | Description |
Page<LogEntry> |
listLogEntriesAsync(Logging.EntryListOption[] options)
public abstract ApiFuture<AsyncPage<LogEntry>> listLogEntriesAsync(Logging.EntryListOption[] options)
Sends a request for listing log entries. This method returns a ApiFuture
object to
consume the result. ApiFuture#get() returns an AsyncPage object that can be
used to asynchronously handle paginated results. Use EntryListOption#pageSize(int) to
specify the page size. Use EntryListOption#pageToken(String) to specify the page token
from which to start listing entries. Use EntryListOption#sortOrder(SortingField,
SortingOrder) to sort log entries according to your preferred order (default is most-recent
last). Use EntryListOption#filter(String) to filter listed log entries. By default a 24
hour filter is applied.
Example of asynchronously listing log entries for a specific log.
String filter = "logName=projects/my_project_id/logs/my_log_name";
ApiFuture<AsyncPage<LogEntry>> future = logging.listLogEntriesAsync(EntryListOption.filter(filter));
// ...
AsyncPage<LogEntry> entries = future.get();
Iterator<LogEntry> entryIterator = entries.iterateAll().iterator();
while (entryIterator.hasNext()) {
LogEntry entry = entryIterator.next();
// do something with the entry
}
Name | Description |
options | EntryListOption[] |
Type | Description |
ApiFuture<AsyncPage<LogEntry>> |
listLogs(Logging.ListOption[] options)
public default Page<String> listLogs(Logging.ListOption[] options)
Lists the log names. This method returns a Page object that can be used to consume paginated results. Use ListOption to specify the page size or the page token from which to start listing logs.
Example of listing log names, specifying the page size.
{ @code Page<Log> logNames = logging.listLogs(ListOption.pageSize(100)); Iterator<Log> logIterator = logNames.iterateAll().iterator(); while (logIterator.hasNext()) { String logName = logIterator.next(); // do something with the log name } }
Name | Description |
options | ListOption[] |
Type | Description |
Page<String> |
listLogsAsync(Logging.ListOption[] options)
public default ApiFuture<AsyncPage<String>> listLogsAsync(Logging.ListOption[] options)
Sends a request for listing log names. This method returns a ApiFuture
object to
consume the result. ApiFuture#get() returns an AsyncPage object that can be
used to asynchronously handle paginated results. Use ListOption to specify the page
size or the page token from which to start listing log names.
Example of asynchronously listing log names, specifying the page size.
ApiFuture<AsyncPage<Log>> future = logging.listLogsAsync(ListOption.pageSize(100));
// ...
AsyncPage<Sink> logNames = future.get();
Iterator<Sink> logIterator = logNames.iterateAll().iterator();
while (logIterator.hasNext()) {
String logName = logIterator.next();
// do something with the log name
}
Name | Description |
options | ListOption[] |
Type | Description |
ApiFuture<AsyncPage<String>> |
listMetrics(Logging.ListOption[] options)
public abstract Page<Metric> listMetrics(Logging.ListOption[] options)
Lists the metrics. This method returns a Page object that can be used to consume paginated results. Use ListOption to specify the page size or the page token from which to start listing metrics.
Example of listing metrics, specifying the page size.
{ @code Page<Metric> metrics = logging.listMetrics(ListOption.pageSize(100)); Iterator<Metric> metricIterator = metrics.iterateAll().iterator(); while (metricIterator.hasNext()) { Metric metric = metricIterator.next(); // do something with the metric } }
Name | Description |
options | ListOption[] |
Type | Description |
Page<Metric> |
listMetricsAsync(Logging.ListOption[] options)
public abstract ApiFuture<AsyncPage<Metric>> listMetricsAsync(Logging.ListOption[] options)
Sends a request for listing metrics. This method returns a ApiFuture
object to consume
the result. ApiFuture#get() returns an AsyncPage object that can be used to
asynchronously handle paginated results. Use ListOption to specify the page size or the
page token from which to start listing metrics.
Example of asynchronously listing metrics, specifying the page size.
ApiFuture<AsyncPage<Metric>> future = logging.listMetricsAsync(ListOption.pageSize(100));
// ...
AsyncPage<Metric> metrics = future.get();
Iterator<Metric> metricIterator = metrics.iterateAll().iterator();
while (metricIterator.hasNext()) {
Metric metric = metricIterator.next();
// do something with the metric
}
Name | Description |
options | ListOption[] |
Type | Description |
ApiFuture<AsyncPage<Metric>> |
listMonitoredResourceDescriptors(Logging.ListOption[] options)
public abstract Page<MonitoredResourceDescriptor> listMonitoredResourceDescriptors(Logging.ListOption[] options)
Lists the monitored resource descriptors used by Cloud Logging. This method returns a Page object that can be used to consume paginated results. Use ListOption to specify the page size or the page token from which to start listing resource descriptors.
Example of listing monitored resource descriptors, specifying the page size.
{ @code Page<MonitoredResourceDescriptor> descriptors = logging .listMonitoredResourceDescriptors(ListOption.pageSize(100)); Iterator<MonitoredResourceDescriptor> descriptorIterator = descriptors.iterateAll().iterator(); while (descriptorIterator.hasNext()) { MonitoredResourceDescriptor descriptor = descriptorIterator.next(); // do something with the descriptor } }
Name | Description |
options | ListOption[] |
Type | Description |
Page<com.google.cloud.MonitoredResourceDescriptor> |
listMonitoredResourceDescriptorsAsync(Logging.ListOption[] options)
public abstract ApiFuture<AsyncPage<MonitoredResourceDescriptor>> listMonitoredResourceDescriptorsAsync(Logging.ListOption[] options)
Sends a request for listing monitored resource descriptors used by Cloud Logging. This method
returns a ApiFuture
object to consume the result. ApiFuture#get() returns an
AsyncPage object that can be used to asynchronously handle paginated results. Use
ListOption to specify the page size or the page token from which to start listing
resource descriptors.
Example of asynchronously listing monitored resource descriptors, specifying the page size.
ApiFuture<AsyncPage<MonitoredResourceDescriptor>> future = logging
.listMonitoredResourceDescriptorsAsync(ListOption.pageSize(100));
// ...
AsyncPage<MonitoredResourceDescriptor> descriptors = future.get();
Iterator<MonitoredResourceDescriptor> descriptorIterator = descriptors.iterateAll().iterator();
while (descriptorIterator.hasNext()) {
MonitoredResourceDescriptor descriptor = descriptorIterator.next();
// do something with the descriptor
}
Name | Description |
options | ListOption[] |
Type | Description |
ApiFuture<AsyncPage<com.google.cloud.MonitoredResourceDescriptor>> |
listSinks(Logging.ListOption[] options)
public abstract Page<Sink> listSinks(Logging.ListOption[] options)
Lists the sinks. This method returns a Page object that can be used to consume paginated results. Use ListOption to specify the page size or the page token from which to start listing sinks.
Example of listing sinks, specifying the page size.
{ @code Page<Sink> sinks = logging.listSinks(ListOption.pageSize(100)); Iterator<Sink> sinkIterator = sinks.iterateAll().iterator(); while (sinkIterator.hasNext()) { Sink sink = sinkIterator.next(); // do something with the sink } }
Name | Description |
options | ListOption[] |
Type | Description |
Page<Sink> |
listSinksAsync(Logging.ListOption[] options)
public abstract ApiFuture<AsyncPage<Sink>> listSinksAsync(Logging.ListOption[] options)
Sends a request for listing sinks. This method returns a ApiFuture
object to consume
the result. ApiFuture#get() returns an AsyncPage object that can be used to
asynchronously handle paginated results. Use ListOption to specify the page size or the
page token from which to start listing sinks.
Example of asynchronously listing sinks, specifying the page size.
ApiFuture<AsyncPage<Sink>> future = logging.listSinksAsync(ListOption.pageSize(100));
// ...
AsyncPage<Sink> sinks = future.get();
Iterator<Sink> sinkIterator = sinks.iterateAll().iterator();
while (sinkIterator.hasNext()) {
Sink sink = sinkIterator.next();
// do something with the sink
}
Name | Description |
options | ListOption[] |
Type | Description |
ApiFuture<AsyncPage<Sink>> |
populateMetadata(Iterable<LogEntry> logEntries, MonitoredResource customResource, String[] exclusionClassPaths)
public default Iterable<LogEntry> populateMetadata(Iterable<LogEntry> logEntries, MonitoredResource customResource, String[] exclusionClassPaths)
Populates metadata fields of the immutable collection of LogEntry items. Only empty fields are populated. The SourceLocation is populated only for items with the severity set to Severity.DEBUG. The information about HttpRequest, trace and span Id is retrieved using ContextHandler.
Name | Description |
logEntries | Iterable<LogEntry> an immutable collection of LogEntry items. |
customResource | com.google.cloud.MonitoredResource a customized instance of the MonitoredResource. If this parameter
is |
exclusionClassPaths | String[] a list of exclussion class path prefixes. If left empty then SourceLocation instance is built based on the caller's stack trace information. Otherwise,
the information from the first StackTraceElement along the call stack which class
name does not start with any not |
Type | Description |
Iterable<LogEntry> | A collection of LogEntry items composed from the |
setFlushSeverity(Severity flushSeverity)
public abstract void setFlushSeverity(Severity flushSeverity)
Sets flush severity for asynchronous logging writes. It is disabled by default, enabled when this method is called with any Severity value other than Severity.NONE. Logs will be immediately written out for entries at or higher than flush severity.
Enabling this can cause the leaking and hanging threads, see BUG(2796) BUG(3880). However you can explicitly call #flush.
TODO: Enable this by default once functionality to trigger rpc is available in generated code.
Name | Description |
flushSeverity | Severity |
setWriteSynchronicity(Synchronicity synchronicity)
public abstract void setWriteSynchronicity(Synchronicity synchronicity)
Sets synchronicity Synchronicity of logging writes, defaults to asynchronous.
Name | Description |
synchronicity | Synchronicity |
tailLogEntries(Logging.TailOption[] options)
public abstract LogEntryServerStream tailLogEntries(Logging.TailOption[] options)
Sends a request to stream fresh log entries. The method returns a LogEntryServerStream
object to iterate through the returned stream of the log entries. Use
EntryListOption#bufferWindow(String)} to specify amount of time to buffer log entries at the
server before being returned. entries. Use TailOption#filter(String) to filter tailed
log entries.
Example of streaming log entries for a specific project.
LogEntryServerStream stream = logging.tailLogEntries(TailOption.project("my_project_id"));
Iterator<LogEntry> it = stream.iterator();
while (it.hasNext()) {
// do something with entry
// call stream.cancel(); to stop streaming
}
}
Name | Description |
options | TailOption[] |
Type | Description |
LogEntryServerStream |
update(Exclusion exclusion)
public abstract Exclusion update(Exclusion exclusion)
Updates one or more properties of an existing exclusion.
Example of updating the exclusion:
{ @code String exclusionName = "my_exclusion_name"; Exclusion exclusion = Exclusion .newBuilder(exclusionName, "resource.type=gcs_bucket severity
Name | Description |
exclusion | Exclusion |
Type | Description |
Exclusion | the updated exclusion |
update(MetricInfo metric)
public abstract Metric update(MetricInfo metric)
Updates a metric or creates one if it does not exist.
Example of updating a metric.
{ @code String metricName = "my_metric_name"; MetricInfo metricInfo = MetricInfo.newBuilder(metricName, "severity>=ERROR").setDescription("new description") .build(); Metric metric = logging.update(metricInfo); }
Name | Description |
metric | MetricInfo |
Type | Description |
Metric | the created metric |
update(SinkInfo sink)
public abstract Sink update(SinkInfo sink)
Updates a sink or creates one if it does not exist.
Example of updating a sink.
{ @code String sinkName = "my_sink_name"; String datasetName = "my_dataset"; SinkInfo sinkInfo = SinkInfo.newBuilder(sinkName, DatasetDestination.of(datasetName)) .setVersionFormat(SinkInfo.VersionFormat.V2).setFilter("severity>=ERROR").build(); Sink sink = logging.update(sinkInfo); }
Name | Description |
sink | SinkInfo |
Type | Description |
Sink | the created sink |
updateAsync(Exclusion exclusion)
public abstract ApiFuture<Exclusion> updateAsync(Exclusion exclusion)
Sends a request to change one or more properties of an existing exclusion. This method returns
an ApiFuture
object to consume the result. ApiFuture#get() returns the updated
exclusion or null
if not found.
Example of asynchronous exclusion update:
{ @code String exclusionName = "my_exclusion_name"; Exclusion exclusion = Exclusion .newBuilder(exclusionName, "resource.type=gcs_bucket severity
Name | Description |
exclusion | Exclusion |
Type | Description |
ApiFuture<Exclusion> |
updateAsync(MetricInfo metric)
public abstract ApiFuture<Metric> updateAsync(MetricInfo metric)
Sends a request for updating a metric (or creating it, if it does not exist). This method
returns a ApiFuture
object to consume the result. ApiFuture#get() returns the
updated/created metric or null
if not found.
Example of asynchronously updating a metric.
{ @code String metricName = "my_metric_name"; MetricInfo metricInfo = MetricInfo.newBuilder(metricName, "severity>=ERROR").setDescription("new description") .build(); ApiFuture<Metric> future = logging.updateAsync(metricInfo); // ... Metric metric = future.get(); }
Name | Description |
metric | MetricInfo |
Type | Description |
ApiFuture<Metric> |
updateAsync(SinkInfo sink)
public abstract ApiFuture<Sink> updateAsync(SinkInfo sink)
Sends a request for updating a sink (or creating it, if it does not exist). This method returns
a ApiFuture
object to consume the result. ApiFuture#get() returns the
updated/created sink or null
if not found.
Example of asynchronously updating a sink.
{ @code String sinkName = "my_sink_name"; String datasetName = "my_dataset"; SinkInfo sinkInfo = SinkInfo.newBuilder(sinkName, DatasetDestination.of(datasetName)) .setVersionFormat(SinkInfo.VersionFormat.V2).setFilter("severity>=ERROR").build(); ApiFuture<Sink> future = logging.updateAsync(sinkInfo); // ... Sink sink = future.get(); }
Name | Description |
sink | SinkInfo |
Type | Description |
ApiFuture<Sink> |
write(Iterable<LogEntry> logEntries, Logging.WriteOption[] options)
public abstract void write(Iterable<LogEntry> logEntries, Logging.WriteOption[] options)
Sends a request to log entries to Cloud Logging. Use WriteOption#logName(String) to
provide a log name for those entries that do not specify one. Use WriteOption#resource(MonitoredResource) to provide a monitored resource for those entries that
do not specify one. Use WriteOption#labels(Map) to provide some labels to be added to
every entry in logEntries
.
Example of writing log entries and providing a default log name and monitored resource.
String logName = "my_log_name";
List<LogEntry> entries = new ArrayList<>();
entries.add(LogEntry.of(StringPayload.of("Entry payload")));
Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("key", "value");
entries.add(LogEntry.of(JsonPayload.of(jsonMap)));
logging.write(entries, WriteOption.logName(logName),
WriteOption.resource(MonitoredResource.newBuilder("global").build()));
Name | Description |
logEntries | Iterable<LogEntry> |
options | WriteOption[] |