Skip to main content
When request logging is enabled, the Apitally SDK captures details about each request and response handled by your application. To protect sensitive data and reduce noise, the SDK provides mechanisms for masking data and filtering out requests you don’t want to log.

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 named password, 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 the QueryParamMaskPatterns, HeaderMaskPatterns, and BodyFieldMaskPatterns 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 provide callback functions via the MaskRequestBody and MaskResponseBody properties. The functions 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.
Callback function examples
Callbacks are applied before pattern-based field masking. The returned body is still masked using the default and custom BodyFieldMaskPatterns patterns.

Exclude requests

You can exclude requests from logging using path patterns (regular expressions) via the PathExcludePatterns 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 provide a callback function with custom exclusion logic via the ShouldExclude property. The function 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.
Callback function 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

The Request object passed to callback functions has the following properties: The Response object passed to MaskResponseBody and ShouldExclude has the following properties: