Logging is configured with SLF4J a generic logging library for Java, which allows logs to be directed to many different logging implementations. We provide configuration files for log4j 1.2/2.0 and Java Util Logging (JUL).
Logging layout and functionality
Requests are logged with a one line summary and the full request/response body and headers.
Log type | Log name | Success level | Failure level |
---|---|---|---|
SUMMARY | com.google.ads.googleads.lib.request.summary | INFO | WARN |
DETAIL | com.google.ads.googleads.lib.request.detail | DEBUG | INFO |
Caveat: Mutate requests where Partial failure is true do not cause the entire request to fail. Therefore, partial failure logs are always logged at Success level, not at Failure level as may be expected.
Detail Log Truncation
The detailed logs are truncated by default to avoid creating large logs. To
change the length at which logs are truncated, set
-Dapi.googleads.maxLogMessageLength=<number>
. Setting -1
disables
log truncation.
Log4j 2.0
Add a dependency on the
log4j-slf4j-impl
library.<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.11.1</version> </dependency>
(Optional) Create a configuration file in your resources directory, for example, in Maven:
src/main/resources
. Log4j 2.0 loads its configuration file from the classpath, not the working directory, so ensure you create in a resources directory.Run your application, specifying
-Dlog4j.configurationFile=<CONFIG_FILE_PATH>
. You can specifyCONFIG_FILE_PATH=googleads-logging/log4j2.xml
to use the default configuration file included with the client libraries.
Log4j 1.2 (legacy)
Add a dependency on the
slf4j-log4j12
library.<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency>
(Optional) Create a configuration file in your projects resources directory, for example, in Maven, path is
src/main/resources
. Log4j 1.2 loads its configuration file from the classpath, not the working directory, so ensure you copy to a resources directory.Run your application, specifying
-Dlog4j.configuration=<CONFIG_FILE_PATH>
. You can specifyCONFIG_FILE_PATH=googleads-logging/log4j.properties
to use the default configuration file includedwith the client libraries.
Java Util Logging
Add a dependency on the
slf4j-jdk14
library.<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>1.7.25</version> </dependency>
Create a JUL configuration file on the file system in a path readable from your application (for instance,
./jdk-logger.properties
). A template is provided atgoogle-ads/src/main/resources/googleads-logging/jdk-logger.properties
. JUL reads from the filesystem only, so do not copy to the resources directory.Run your application specifying
-Djava.util.logging.config.file=./jdk-logger.properties
.