Stay organized with collections
Save 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 -1 disables
log truncation.
Log4j 2
Add a dependency on the log4j-slf4j-impl library, substituting
2.x.y with 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 specify
CONFIG_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, substituting 1.x.y with
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 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 specify CONFIG_FILE_PATH=googleads-logging/log4j.properties to 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 at
google-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-08-25 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`."]]