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

# filters

# `prefect.logging.filters`

## Functions

### `redact_substr` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L31](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L31)</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>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L90](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L90)</sup>

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

**Methods:**

#### `filter` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L95](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/logging/filters.py#L95)</sup>

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