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 toASYNC--> <writeSynchronicity>SYNC</writeSynchronicity> <!-- Optional: defaults totrue--> <autoPopulateMetadata>false</autoPopulateMetadata> <!-- Optional: defaults tofalse--> <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 usingLoggingEnhancerclasses --> <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 totrue--> <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
Fields Modifier and Type Field Description static StringDEFAULT_INSTRUMENTATION_VERSIONstatic StringJAVA_LOGBACK_LIBRARY_NAME
-
Constructor Summary
Constructors Constructor Description LoggingAppender()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddEnhancer(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.LoggingOptionsgetLoggingOptions()Gets theLoggingOptionsto use for thisLoggingAppender.com.google.cloud.logging.SynchronicitygetWriteSynchronicity()Deprecated.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.voidsetLog(String log)Sets 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, toString
-
Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext
-
-
-
-
Field Detail
-
JAVA_LOGBACK_LIBRARY_NAME
public static final String JAVA_LOGBACK_LIBRARY_NAME
- See Also:
- Constant Field Values
-
DEFAULT_INSTRUMENTATION_VERSION
public static final String DEFAULT_INSTRUMENTATION_VERSION
- See Also:
- Constant Field Values
-
-
Method Detail
-
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
public void setLog(String log)
Sets the LOG_ID part of the log name for which the logs are ingested.- Parameters:
log- LOG_ID part of the name
-
setResourceType
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.
- Parameters:
resourceType- the name of the monitored resource.
-
setCredentialsFile
public void setCredentialsFile(String credentialsFile)
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
public void setLogDestinationProjectId(String projectId)
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
public void setLogbackBatchingSettings(LogbackBatchingSettings batchingSettings)
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
public void addEnhancer(String enhancerClassName)
Add extra labels using classes that implementLoggingEnhancer.
-
addLoggingEventEnhancer
public void addLoggingEventEnhancer(String enhancerClassName)
-
getWriteSynchronicity
@Deprecated public com.google.cloud.logging.Synchronicity 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 public void flush()
Deprecated.Flushes any pending asynchronous logging writes.
-
getLoggingOptions
protected com.google.cloud.logging.LoggingOptions getLoggingOptions()
Gets theLoggingOptionsto use for thisLoggingAppender.
-
-