> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prefect.io/llms.txt
> Use this file to discover all available pages before exploring further.

# filters

# `prefect.logging.filters`

## Functions

### `redact_substr` <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L31" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

```python theme={null}
redact_substr(obj: Any, substr: str) -> Any
```

Redact a string from a potentially nested object.

Standard collections (list, tuple, set, dict, and other `Mapping`
instances) are traversed recursively and have their string values redacted
while preserving shape. Non-container objects are redacted by replacing
their `str` and `repr` values with obfuscated versions, avoiding the
need to reconstruct arbitrary user objects (e.g. dataclasses with
`init=False` fields or Pydantic models).

**Args:**

* `obj`: The object to redact the string from
* `substr`: The string to redact.

**Returns:**

* The object with the API key redacted.

## Classes

### `ObfuscateApiKeyFilter` <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

A logging filter that obfuscates any string that matches the obfuscate\_string function.

**Methods:**

#### `filter` <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L95" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

```python theme={null}
filter(self, record: logging.LogRecord) -> bool
```
