Default masking and exclusion
The SDK automatically masks common sensitive query parameters, headers, and request/response body fields based on built-in patterns. For example, fields namedpassword, token, secret, or headers like Authorization are masked by default.
To reduce noise, the SDK also automatically excludes common static assets and health check endpoints, such as /robots.txt or /healthz.
See the data privacy page for complete lists of default masking and exclusion patterns.
Mask sensitive data
You can extend the default masking rules by providing additional regular expressions via thequery-param-mask-patterns, header-mask-patterns, and body-field-mask-patterns properties. Patterns are case-insensitive and match anywhere within the name. Use ^ and $ anchors for exact matches.
For more control over request and response body masking, you can implement the RequestLoggingCallbacks interface and specify the class name via the callbacks-class property. The callback methods receive the captured request and response data as arguments (see callback arguments below) and should return the masked body as byte[], or null to mask the entire body.
Configuration example
Callbacks class example
Callbacks are applied before pattern-based field masking. The returned body is still masked using the default and custom
body-field-mask-patterns patterns.Exclude requests
You can exclude requests from logging using path patterns (regular expressions) via thepath-exclude-patterns property. Like the masking patterns, these are case-insensitive and match anywhere within the request path. Use ^ and $ anchors for exact matches.
Alternatively, you can implement the shouldExclude method in your RequestLoggingCallbacks class with custom exclusion logic. The method receives the captured request and response data as arguments (see callback arguments below) and should return true to exclude the request from logging, or false to include it.
Configuration example
Callbacks class example
Excluded requests won’t be logged, but are still counted in metrics. To exclude endpoints from metrics, you can mark them as excluded in the dashboard.
Callback arguments
TheRequest object passed to callback methods has the following getter methods:
| Method | Description | Type |
|---|---|---|
getTimestamp() | Unix timestamp of the request. | double |
getMethod() | HTTP method of the request. | String |
getPath() | Path of the matched endpoint, if applicable. | String |
getUrl() | Full URL of the request. | String |
getHeaders() | Array of key-value pairs representing the request headers. | Header[] |
getSize() | Size of the request body in bytes. | Long |
getConsumer() | Identifier of the consumer making the request. | String |
getBody() | Raw request body. | byte[] |
Response object passed to maskResponseBody and shouldExclude has the following getter methods:
| Method | Description | Type |
|---|---|---|
getStatusCode() | HTTP status code of the response. | int |
getResponseTime() | Time taken to respond to the request in seconds. | double |
getHeaders() | Array of key-value pairs representing the response headers. | Header[] |
getSize() | Size of the response body in bytes. | Long |
getBody() | Raw response body. | byte[] |