Stay organized with collectionsSave and categorize content based on your preferences.
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 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
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-1disables
log truncation.
Log4j 2
Add a dependency on thelog4j-slf4j-impllibrary, substituting2.x.ywith the version of Log4j 2 you are using in your project.
(Optional) Create a configuration file in your resources directory, for
example, in Maven:src/main/resources. Log4j 2 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.xmlto use the default
configuration file included with the client libraries.
Log4j 1.2 (legacy)
Add a dependency on theslf4j-log4j12library, substituting1.x.ywith
the version of Log4j 1.2 you are using in your project.
(Optional) Create a configuration file in your projects resources directory,
for example, in Maven, path issrc/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.propertiesto use
the default configuration file includedwith the client libraries.
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-03 UTC."],[[["\u003cp\u003eLogging is managed through SLF4J, offering flexibility with log4j 1.2/2 and Java Util Logging configurations.\u003c/p\u003e\n"],["\u003cp\u003eRequest logging includes a summary line along with detailed request/response bodies and headers at configurable log levels.\u003c/p\u003e\n"],["\u003cp\u003eDetailed logs are truncated by default, adjustable via the \u003ccode\u003e-Dapi.googleads.maxLogMessageLength\u003c/code\u003e system property.\u003c/p\u003e\n"],["\u003cp\u003eConfiguration instructions and examples are provided for setup with Log4j 2, Log4j 1.2, and Java Util Logging.\u003c/p\u003e\n"]]],[],null,["# Logging is configured with SLF4J a generic logging library for Java, which\nallows logs to be directed to many different logging implementations. We provide\nconfiguration files for log4j 1.2/2 and Java Util Logging (JUL).\n\nLogging layout and functionality\n--------------------------------\n\nRequests are logged with a one line summary and the full request/response body\nand headers.\n\n| Log type | Log name | Success level | Failure level |\n|----------|----------------------------------------------|---------------|---------------|\n| SUMMARY | com.google.ads.googleads.lib.request.summary | INFO | WARN |\n| DETAIL | com.google.ads.googleads.lib.request.detail | DEBUG | INFO |\n\n| **Key Point:** Mutate requests where [Partial\n| failure](/google-ads/api/samples/handle-partial-failure) is true won't cause the entire request to fail. Thus, partial failure logs are always logged at Success level, not at Failure level as might be expected.\n\nDetail Log Truncation\n---------------------\n\nThe detailed logs are truncated by default to avoid creating large logs. To\nchange the length at which logs are truncated, set\n`-Dapi.googleads.maxLogMessageLength=\u003cnumber\u003e`. Setting `-1` disables\nlog truncation.\n\nLog4j 2\n-------\n\n1. Add a dependency on the `log4j-slf4j-impl` library, substituting\n `2.x.y` with the version of Log4j 2 you are using in your project.\n\n \u003cdependency\u003e\n \u003cgroupId\u003eorg.apache.logging.log4j\u003c/groupId\u003e\n \u003cartifactId\u003elog4j-slf4j-impl\u003c/artifactId\u003e\n \u003cversion\u003e2.x.y\u003c/version\u003e\n \u003c/dependency\u003e\n\n2. (Optional) Create a configuration file in your resources directory, for\n example, in Maven: `src/main/resources`. Log4j 2 loads its configuration\n file from the classpath, not the working directory, so ensure you create in a\n resources directory.\n\n3. Run your application, specifying\n `-Dlog4j.configurationFile=\u003cCONFIG_FILE_PATH\u003e`. You can specify\n `CONFIG_FILE_PATH=googleads-logging/log4j2.xml` to use the default\n configuration file included with the client libraries.\n\nLog4j 1.2 (legacy)\n------------------\n\n1. Add a dependency on the `slf4j-log4j12` library, substituting `1.x.y` with\n the version of Log4j 1.2 you are using in your project.\n\n \u003cdependency\u003e\n \u003cgroupId\u003eorg.slf4j\u003c/groupId\u003e\n \u003cartifactId\u003eslf4j-log4j12\u003c/artifactId\u003e\n \u003cversion\u003e1.x.y\u003c/version\u003e\n \u003c/dependency\u003e\n\n2. (Optional) Create a configuration file in your projects resources directory,\n for example, in Maven, path is `src/main/resources`. Log4j 1.2 loads its\n configuration file from the classpath, not the working directory, so ensure\n you copy to a resources directory.\n\n3. Run your application, specifying `-Dlog4j.configuration=\u003cCONFIG_FILE_PATH\u003e`.\n You can specify `CONFIG_FILE_PATH=googleads-logging/log4j.properties` to use\n the default configuration file includedwith the client libraries.\n\nJava Util Logging\n-----------------\n\n1. Add a dependency on the `slf4j-jdk14` library.\n\n \u003cdependency\u003e\n \u003cgroupId\u003eorg.slf4j\u003c/groupId\u003e\n \u003cartifactId\u003eslf4j-jdk14\u003c/artifactId\u003e\n \u003cversion\u003e1.7.25\u003c/version\u003e\n \u003c/dependency\u003e\n\n2. Create a JUL configuration file on the file system in a path readable from\n your application (for instance, `./jdk-logger.properties`). A template is\n provided at\n `google-ads/src/main/resources/googleads-logging/jdk-logger.properties`. JUL\n reads from the filesystem only, so do not copy to the resources directory.\n\n3. Run your application specifying\n `-Djava.util.logging.config.file=./jdk-logger.properties`."]]