# Context.tracer

```python
ExecutionContext.tracer: WorkflowTracer
```

Tracer for creating custom spans inside the currently executing task.

## Methods

```python
context.tracer.span(name: str, *args, **kwargs) -> ContextManager[Span]
context.tracer.current_span() -> Span
```

Custom spans are nested under the current task span and are exported to Tilebox with the job trace.

```python title="Python"
from tilebox.workflows import ExecutionContext, Task

class DownloadInput(Task):
    input_id: str

    def execute(self, context: ExecutionContext) -> None:
        with context.tracer.span("download-input") as span:
            span.set_attribute("input_id", self.input_id)
```
