Class LoggingAppender (0.131.7-alpha)

public class LoggingAppender extends UnsynchronizedAppenderBase<ILoggingEvent>

Logback appender for Google Cloud Logging.

Appender configuration in logback.xml:

    <appender name="CLOUD" class="com.google.cloud.logging.logback.LoggingAppender">
         <!-- Optional: filter logs at and above this level -->
         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
             <level>INFO</level>
         </filter>

         <!-- Optional: defaults to "java.log" -->
         <log>application.log</log>

         <!-- Optional: defaults to "ERROR" -->
         <flushLevel>WARN</flushLevel>

         <!-- Optional: defaults to ASYNC -->
         <writeSynchronicity>SYNC</writeSynchronicity>

         <!-- Optional: defaults to true -->
         <autoPopulateMetadata>false</autoPopulateMetadata>

         <!-- Optional: defaults to false -->
         <redirectToStdout>true</redirectToStdout>

         <!-- Optional: auto detects on App Engine Flex, Standard, GCE and GKE, defaults to "global". See supported resource types -->
         <resourceType></resourceType>

         <!-- Optional: defaults to the default credentials of the environment -->
         <credentialsFile>/path/to/credentials/file</credentialsFile>

         <!-- Optional: defaults to the project id obtained during authentication process. Project id is also used to construct resource name of the log entries -->
         <logDestinationProjectId>String</logDestinationProjectId>

         <!-- Optional: add custom labels to log entries using LoggingEnhancer classes -->
         <enhancer>com.example.enhancers.TestLoggingEnhancer</enhancer>
         <enhancer>com.example.enhancers.AnotherEnhancer</enhancer>

         <!-- Optional: specifies if a batch's valid entries should be written even if some other entry failed due to an error. Defaults to true -->
         <partialSuccess>true</partialSuccess>

         <!-- Optional: In the asynchronous mode the call(s) to Logging API takes place asynchronously and few calls to write()
         method may be batched together to compose a single call to Logging API. In order to control the batching settings,
         the logbackBatchingSettings section can be used as shown below.
         See BatchingSettings
         for more info regarding parameters shown below -->
         <logbackBatchingSettings>
            <elementCountThreshold>100</elementCountThreshold>
            <requestByteThreshold>1000</requestByteThreshold>
            <delayThreshold>500</delayThreshold>
            <maxOutstandingElementCount>10000</maxOutstandingElementCount>
            <maxOutstandingRequestBytes>100000</maxOutstandingRequestBytes>
            <limitExceededBehavior>Ignore</limitExceededBehavior>
         </logbackBatchingSettings>
     </appender>
 

Inheritance

java.lang.Object > ch.qos.logback.core.spi.ContextAwareBase > ch.qos.logback.core.UnsynchronizedAppenderBase > LoggingAppender

Static Fields

DEFAULT_INSTRUMENTATION_VERSION

public static final String DEFAULT_INSTRUMENTATION_VERSION
Field Value
Type Description
String

JAVA_LOGBACK_LIBRARY_NAME

public static final String JAVA_LOGBACK_LIBRARY_NAME
Field Value
Type Description
String

Constructors

LoggingAppender()

public LoggingAppender()

Methods

addEnhancer(String enhancerClassName)

public void addEnhancer(String enhancerClassName)

Add extra labels using classes that implement LoggingEnhancer.

Parameter
Name Description
enhancerClassName String

addLoggingEventEnhancer(String enhancerClassName)

public void addLoggingEventEnhancer(String enhancerClassName)
Parameter
Name Description
enhancerClassName String

append(ILoggingEvent e)

protected void append(ILoggingEvent e)
Parameter
Name Description
e ch.qos.logback.classic.spi.ILoggingEvent
Overrides
ch.qos.logback.core.UnsynchronizedAppenderBase.append(E)

flush() (deprecated)

public void flush()

Flushes any pending asynchronous logging writes.

getLoggingOptions()

protected LoggingOptions getLoggingOptions()

Gets the LoggingOptions to use for this LoggingAppender.

Returns
Type Description
com.google.cloud.logging.LoggingOptions

getWriteSynchronicity() (deprecated)

public Synchronicity getWriteSynchronicity()

Returns the current value of the ingestion mode.

The method is deprecated. Use appender configuration to set up the ingestion

Returns
Type Description
com.google.cloud.logging.Synchronicity

a Synchronicity value of the ingestion module.

setAutoPopulateMetadata(boolean flag)

public void setAutoPopulateMetadata(boolean flag)

Sets the automatic population of metadata fields for ingested logs.

Default to true.

Parameter
Name Description
flag boolean

the metadata auto-population flag.

setCredentialsFile(String credentialsFile)

public void setCredentialsFile(String credentialsFile)

Sets the path to the credential file. If not set the appender will use GoogleCredentials#getApplicationDefault() to authenticate.

Parameter
Name Description
credentialsFile String

the path to the credentials file.

setFlushLevel(Level flushLevel)

public void setFlushLevel(Level flushLevel)

Sets a threshold for log severity level to flush all log entries that were batched so far.

Defaults to Error.

Parameter
Name Description
flushLevel ch.qos.logback.classic.Level

Logback log level

setLog(String log)

public void setLog(String log)

Sets the LOG_ID part of the log name for which the logs are ingested.

Parameter
Name Description
log String

LOG_ID part of the name

setLogDestinationProjectId(String projectId)

public void setLogDestinationProjectId(String projectId)

Sets project ID to be used to customize log destination name for written log entries.

Parameter
Name Description
projectId String

The project ID to be used to construct the resource destination name for log entries.

setLogbackBatchingSettings(LogbackBatchingSettings batchingSettings)

public void setLogbackBatchingSettings(LogbackBatchingSettings batchingSettings)

Sets the LogbackBatchingSettings to be used for the asynchronous mode call(s) to Logging API

Default to null.

Parameter
Name Description
batchingSettings LogbackBatchingSettings

the LogbackBatchingSettings to be used for asynchronous mode call(s) to Logging API

setPartialSuccess(boolean flag)

public void setPartialSuccess(boolean flag)

Sets the flag indicating if a batch's valid entries should be written even if some other entry failed due to an error.

Default to true.

Parameter
Name Description
flag boolean

the partialSuccess flag.

setRedirectToStdout(boolean flag)

public void setRedirectToStdout(boolean flag)

Sets the redirect of the appender's output to STDOUT instead of ingesting logs to Cloud Logging using Logging API.

Default to false.

Parameter
Name Description
flag boolean

the redirect flag.

setResourceType(String resourceType)

public void setResourceType(String resourceType)

Sets the name of the monitored resource (Optional). If not define the appender will try to identify the resource type automatically. Currently support resource types include "gae_app", "gce_instance", "k8s_container", "cloud_run_revision" and "cloud_function". If the appender fails to identify the resource type, it will be set to "global".

Must be a one of the supported resource types.

Parameter
Name Description
resourceType String

the name of the monitored resource.

setWriteSynchronicity(Synchronicity flag)

public void setWriteSynchronicity(Synchronicity flag)

Sets the log ingestion mode. It can be one of the Synchronicity values.

Default to Synchronicity.ASYNC

Parameter
Name Description
flag com.google.cloud.logging.Synchronicity

the new ingestion mode.

start()

public synchronized void start()

Initialize and configure the cloud logging service.

Overrides
ch.qos.logback.core.UnsynchronizedAppenderBase.start()

stop()

public synchronized void stop()
Overrides
ch.qos.logback.core.UnsynchronizedAppenderBase.stop()