public class LoggingHandler extends Handler
Logger
to Cloud
Logging.
Java logging levels (see Level
) are mapped to the following Google
Cloud Logging severities:
Java Level | Cloud Logging Severity |
---|---|
SEVERE | ERROR |
WARNING | WARNING |
INFO | INFO |
CONFIG | INFO |
FINE | DEBUG |
FINER | DEBUG |
FINEST | DEBUG |
Original Java logging levels are added as labels (with levelName
and levelValue
keys, respectively) to the corresponding Cloud Logging LogEntry
. You can read
entry labels using LogEntry.getLabels()
. To use logging levels that correspond to Cloud
Logging severities you can use LoggingLevel
.
Configuration: By default each LoggingHandler
is initialized using the
following LogManager
configuration properties (that you can set in the logging.properties
file). If properties are not defined (or have invalid values) then the
specified default values are used.
com.google.cloud.logging.LoggingHandler.log
the log name (defaults to java.log
).
com.google.cloud.logging.LoggingHandler.level
specifies the default level for the
handler (defaults to Level.INFO
).
com.google.cloud.logging.LoggingHandler.filter
specifies the name of a Filter
class to use (defaults to no filter).
com.google.cloud.logging.LoggingHandler.formatter
specifies the name of a Formatter
class to use (defaults to SimpleFormatter
).
com.google.cloud.logging.LoggingHandler.flushLevel
specifies the flush log level.
When a log with this level is published, logs are transmitted to the Cloud Logging service
(defaults to LoggingLevel.ERROR
).
com.google.cloud.logging.LoggingHandler.enhancers
specifies a comma separated list
of LoggingEnhancer
classes. This handler will call each enhancer list whenever it
builds a LogEntry
instance (defaults to empty list).
com.google.cloud.logging.LoggingHandler.resourceType
the type name to use when
creating the default MonitoredResource
(defaults to auto-detected resource type,
else "global").
com.google.cloud.logging.Synchronicity
the synchronicity of the write method to use
to write logs to the Cloud Logging service (defaults to Synchronicity.ASYNC
).
com.google.cloud.logging.LoggingHandler.autoPopulateMetadata
is a boolean flag that
opts-out the population of the log entries metadata before the logs are sent to Cloud
Logging (defaults to true
).
com.google.cloud.logging.LoggingHandler.redirectToStdout
is a boolean flag that
opts-in redirecting the output of the handler to STDOUT instead of ingesting logs to Cloud
Logging using Logging API (defaults to false
). Redirecting logs can be used in
Google Cloud environments with installed logging agent to delegate log ingestions to the
agent. Redirected logs are formatted as one line Json string following the structured
logging guidelines. This flag is deprecated; use com.google.cloud.logging.LoggingHandler.logTarget
instead.
com.google.cloud.logging.LoggingHandler.logTarget
is an enumeration controlling log
routing (defaults to CLOUD_LOGGING
). If set to STDOUT or STDERR, logs will be
printed to the corresponding stream in the Json format that can be parsed by the logging
agent. If set to CLOUD_LOGGING, logs will be sent directly to the Google Cloud Logging API.
To add a LoggingHandler
to an existing Logger
and be sure to avoid infinite
recursion when logging, use the addHandler(Logger, LoggingHandler)
method. Alternatively
you can add the handler via logging.properties
. For example using the following line:
com.example.mypackage.handlers=com.google.cloud.logging.LoggingHandler
Modifier and Type | Class and Description |
---|---|
static class |
LoggingHandler.LogTarget
Where to send logs.
|
Constructor and Description |
---|
LoggingHandler()
Creates an handler that publishes messages to Cloud Logging.
|
LoggingHandler(String log)
Creates a handler that publishes messages to Cloud Logging.
|
LoggingHandler(String log,
LoggingOptions options)
Creates a handler that publishes messages to Cloud Logging.
|
LoggingHandler(String log,
LoggingOptions options,
com.google.cloud.MonitoredResource monitoredResource)
Creates a handler that publishes messages to Cloud Logging.
|
LoggingHandler(String log,
LoggingOptions options,
com.google.cloud.MonitoredResource monitoredResource,
List<LoggingEnhancer> enhancers)
Creates a handler that publishes messages to Cloud Logging.
|
LoggingHandler(String log,
LoggingOptions options,
com.google.cloud.MonitoredResource monitoredResource,
List<LoggingEnhancer> enhancers,
LogDestinationName destination)
Creates a handler that publishes messages to Cloud Logging.
|
Modifier and Type | Method and Description |
---|---|
static void |
addHandler(Logger logger,
LoggingHandler handler)
Adds the provided
LoggingHandler to logger . |
void |
close()
Closes the handler and the associated
Logging object. |
void |
flush() |
Boolean |
getAutoPopulateMetadata()
Gets the metadata auto population flag.
|
Level |
getFlushLevel()
Get the flush log level.
|
LoggingHandler.LogTarget |
getLogTarget() |
Boolean |
getRedirectToStdout()
Deprecated.
|
Synchronicity |
getSynchronicity()
Get the flush log level.
|
protected LogEntry.Builder |
logEntryFor(LogRecord record) |
void |
publish(LogRecord record) |
void |
setAutoPopulateMetadata(boolean value)
Sets the metadata auto population flag.
|
void |
setFlushLevel(Level flushLevel)
Sets minimum logging level to log immediately and flush any pending writes.
|
void |
setLogTarget(LoggingHandler.LogTarget value)
Configure the destination for ingested logs.
|
void |
setRedirectToStdout(boolean value)
Deprecated.
|
void |
setSynchronicity(Synchronicity synchronicity)
Sets synchronicity of logging writes.
|
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, isLoggable, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel
public LoggingHandler()
public LoggingHandler(String log)
log
- the name of the log to which log entries are writtenpublic LoggingHandler(String log, LoggingOptions options)
log
- the name of the log to which log entries are writtenoptions
- options for the Cloud Logging servicepublic LoggingHandler(String log, LoggingOptions options, com.google.cloud.MonitoredResource monitoredResource)
log
- the name of the log to which log entries are writtenoptions
- options for the Cloud Logging servicemonitoredResource
- the monitored resource to which log entries refer. If it is null then
a default resource is created based on the project ID and deployment environment.public LoggingHandler(String log, LoggingOptions options, com.google.cloud.MonitoredResource monitoredResource, List<LoggingEnhancer> enhancers)
log
- the name of the log to which log entries are writtenoptions
- options for the Cloud Logging servicemonitoredResource
- the monitored resource to which log entries refer. If it is null then
a default resource is created based on the project ID and deployment environment.enhancers
- List of LoggingEnhancer
instances used to enhance anyLogEntry
instances built by this handler.public LoggingHandler(String log, LoggingOptions options, com.google.cloud.MonitoredResource monitoredResource, List<LoggingEnhancer> enhancers, LogDestinationName destination)
options
argument or in the configuration file. At least
one flag LoggingOptions
or LoggingConfig
has to be explicitly set to false
in order to opt-out the metadata auto-population.log
- the name of the log to which log entries are writtenoptions
- options for the Cloud Logging servicemonitoredResource
- the monitored resource to which log entries refer. If it is null then
a default resource is created based on the project ID and deployment environment.enhancers
- List of LoggingEnhancer
instances used to enhance anyLogEntry
instances built by this handler.destination
- the log destination LogDestinationName
(see 'logName' parameter in
https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)protected LogEntry.Builder logEntryFor(LogRecord record)
public void close()
Logging
object.public Level getFlushLevel()
public void setFlushLevel(Level flushLevel)
flushLevel
- minimum log level to trigger flushpublic void setSynchronicity(Synchronicity synchronicity)
synchronicity
- Synchronicity
public Synchronicity getSynchronicity()
public void setAutoPopulateMetadata(boolean value)
public Boolean getAutoPopulateMetadata()
@Deprecated public void setRedirectToStdout(boolean value)
setLogTarget(LogTarget)
.true
, logs will be printed to STDOUT in
the Json format that can be parsed by the logging agent. If set to false
, logs will be
ingested to Cloud Logging by calling Logging API.
This method is mutually exclusive with setLogTarget(LogTarget)
.
@Deprecated public Boolean getRedirectToStdout()
public void setLogTarget(LoggingHandler.LogTarget value)
This method is mutually exclusive with setRedirectToStdout(boolean)
.
public LoggingHandler.LogTarget getLogTarget()
public static void addHandler(Logger logger, LoggingHandler handler)
LoggingHandler
to logger
. Use this method to register Cloud
Logging handlers instead of Logger.addHandler(Handler)
to avoid infinite recursion when
logging.Copyright © 2023 Google LLC. All rights reserved.