Package com.google.cloud.logging.logback
Class LoggingAppender
java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
ch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
com.google.cloud.logging.logback.LoggingAppender
- All Implemented Interfaces:
ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>,ch.qos.logback.core.spi.ContextAware,ch.qos.logback.core.spi.FilterAttachable<ch.qos.logback.classic.spi.ILoggingEvent>,ch.qos.logback.core.spi.LifeCycle
public class LoggingAppender
extends ch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.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](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.batching.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>
-
Field Summary
FieldsFields inherited from class ch.qos.logback.core.UnsynchronizedAppenderBase
name, startedFields inherited from class ch.qos.logback.core.spi.ContextAwareBase
context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEnhancer(String enhancerClassName) Add extra labels using classes that implementLoggingEnhancer.voidaddLoggingEventEnhancer(String enhancerClassName) protected voidappend(ch.qos.logback.classic.spi.ILoggingEvent e) voidflush()Deprecated.protected com.google.cloud.logging.LoggingOptionsGets theLoggingOptionsto use for thisLoggingAppender.com.google.cloud.logging.SynchronicityDeprecated.voidsetAutoPopulateMetadata(boolean flag) Sets the automatic population of metadata fields for ingested logs.voidsetCredentialsFile(String credentialsFile) Sets the path to the credential file.voidsetFlushLevel(ch.qos.logback.classic.Level flushLevel) Sets a threshold for log severity level to flush all log entries that were batched so far.voidSets the LOG_ID part of the log name for which the logs are ingested.voidsetLogbackBatchingSettings(LogbackBatchingSettings batchingSettings) Sets theLogbackBatchingSettingsto be used for the asynchronous mode call(s) to Logging APIvoidsetLogDestinationProjectId(String projectId) Sets project ID to be used to customize log destination name for written log entries.voidsetPartialSuccess(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.voidsetRedirectToStdout(boolean flag) Sets the redirect of the appender's output to STDOUT instead of ingesting logs to Cloud Logging using Logging API.voidsetResourceType(String resourceType) Sets the name of the monitored resource (Optional).voidsetWriteSynchronicity(com.google.cloud.logging.Synchronicity flag) Sets the log ingestion mode.voidstart()Initialize and configure the cloud logging service.voidstop()Methods inherited from class ch.qos.logback.core.UnsynchronizedAppenderBase
addFilter, clearAllFilters, doAppend, getCopyOfAttachedFiltersList, getFilterChainDecision, getName, isStarted, setName, toStringMethods inherited from class ch.qos.logback.core.spi.ContextAwareBase
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContextMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ch.qos.logback.core.spi.ContextAware
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
-
Field Details
-
JAVA_LOGBACK_LIBRARY_NAME
- See Also:
-
DEFAULT_INSTRUMENTATION_VERSION
- See Also:
-
-
Constructor Details
-
LoggingAppender
public LoggingAppender()
-
-
Method Details
-
setFlushLevel
public void setFlushLevel(ch.qos.logback.classic.Level flushLevel) Sets a threshold for log severity level to flush all log entries that were batched so far.Defaults to Error.
- Parameters:
flushLevel- Logback log level
-
setLog
Sets the LOG_ID part of the log name for which the logs are ingested.- Parameters:
log- LOG_ID part of the name
-
setResourceType
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.
- Parameters:
resourceType- the name of the monitored resource.
-
setCredentialsFile
Sets the path to the credential file. If not set the appender will useGoogleCredentials.getApplicationDefault()to authenticate.- Parameters:
credentialsFile- the path to the credentials file.
-
setLogDestinationProjectId
Sets project ID to be used to customize log destination name for written log entries.- Parameters:
projectId- The project ID to be used to construct the resource destination name for log entries.
-
setWriteSynchronicity
public void setWriteSynchronicity(com.google.cloud.logging.Synchronicity flag) Sets the log ingestion mode. It can be one of theSynchronicityvalues.Default to
Synchronicity.ASYNC- Parameters:
flag- the new ingestion mode.
-
setAutoPopulateMetadata
public void setAutoPopulateMetadata(boolean flag) Sets the automatic population of metadata fields for ingested logs.Default to
true.- Parameters:
flag- the metadata auto-population flag.
-
setRedirectToStdout
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.- Parameters:
flag- the redirect flag.
-
setLogbackBatchingSettings
Sets theLogbackBatchingSettingsto be used for the asynchronous mode call(s) to Logging APIDefault to
null.- Parameters:
batchingSettings- theLogbackBatchingSettingsto be used for asynchronous mode call(s) to Logging API
-
setPartialSuccess
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.- Parameters:
flag- the partialSuccess flag.
-
addEnhancer
Add extra labels using classes that implementLoggingEnhancer. -
addLoggingEventEnhancer
-
getWriteSynchronicity
Deprecated.Returns the current value of the ingestion mode.The method is deprecated. Use appender configuration to set up the ingestion
- Returns:
- a
Synchronicityvalue of the ingestion module.
-
start
public void start()Initialize and configure the cloud logging service.- Specified by:
startin interfacech.qos.logback.core.spi.LifeCycle- Overrides:
startin classch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
-
append
protected void append(ch.qos.logback.classic.spi.ILoggingEvent e) - Specified by:
appendin classch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
-
stop
public void stop()- Specified by:
stopin interfacech.qos.logback.core.spi.LifeCycle- Overrides:
stopin classch.qos.logback.core.UnsynchronizedAppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
-
flush
Deprecated.Flushes any pending asynchronous logging writes. -
getLoggingOptions
protected com.google.cloud.logging.LoggingOptions getLoggingOptions()Gets theLoggingOptionsto use for thisLoggingAppender.
-