# ConsoleExporter

Outputs trace events to the console for debugging and development.

## Constructor

```typescript
new ConsoleExporter(config?: BaseExporterConfig)
```

**config** (`BaseExporterConfig`): Configuration options

**config.logger** (`IMastraLogger`): Logger instance (falls back to ConsoleLogger with INFO level)

**config.logLevel** (`LogLevel | 'debug' | 'info' | 'warn' | 'error'`): Log level for the exporter (default: INFO)

## Properties

```typescript
readonly name = 'tracing-console-exporter';
```

## Methods

### `exportTracingEvent`

```typescript
async exportTracingEvent(event: TracingEvent): Promise<void>
```

Exports a tracing event to the console.

### shutdown

```typescript
async shutdown(): Promise<void>
```

Logs shutdown message.

## Output format

The exporter outputs different formats based on event type:

### SPAN\_STARTED

```text
🚀 SPAN_STARTED
   Type: [span type]
   Name: [span name]
   ID: [span id]
   Trace ID: [trace id]
   Input: [formatted input]
   Attributes: [formatted attributes]
────────────────────────────────────────
```

### SPAN\_ENDED

```text
✅ SPAN_ENDED
   Type: [span type]
   Name: [span name]
   ID: [span id]
   Duration: [duration]ms
   Trace ID: [trace id]
   Input: [formatted input]
   Output: [formatted output]
   Error: [formatted error if present]
   Attributes: [formatted attributes]
────────────────────────────────────────
```

### SPAN\_UPDATED

```text
📝 SPAN_UPDATED
   Type: [span type]
   Name: [span name]
   ID: [span id]
   Trace ID: [trace id]
   Input: [formatted input]
   Output: [formatted output]
   Error: [formatted error if present]
   Updated Attributes: [formatted attributes]
────────────────────────────────────────
```

## Usage

```typescript
import { ConsoleExporter } from '@mastra/observability'
import { ConsoleLogger, LogLevel } from '@mastra/core/logger'

// Use default logger (INFO level)
const exporter = new ConsoleExporter()

// Use custom log level
const exporter = new ConsoleExporter({
  logLevel: 'debug',
})

// Use custom logger instance
const customLogger = new ConsoleLogger({ level: LogLevel.DEBUG })
const exporterWithLogger = new ConsoleExporter({
  logger: customLogger,
})
```

## Implementation details

- Formats attributes as JSON with 2-space indentation
- Calculates and displays span duration in milliseconds
- Handles serialization errors gracefully
- Logs unimplemented event types as warnings
- Uses 80-character separator lines between events

## See also

### Documentation

- [Tracing Overview](https://mastra.ai/docs/observability/tracing/overview) - Complete guide
- [Exporters](https://mastra.ai/docs/observability/tracing/overview) - Exporter concepts

### Other Exporters

- [DefaultExporter](https://mastra.ai/reference/observability/tracing/exporters/default-exporter) - Storage persistence
- [CloudExporter](https://mastra.ai/reference/observability/tracing/exporters/cloud-exporter) - Mastra Cloud
- [Langfuse](https://mastra.ai/reference/observability/tracing/exporters/langfuse) - Langfuse integration
- [Braintrust](https://mastra.ai/reference/observability/tracing/exporters/braintrust) - Braintrust integration

### Reference

- [Configuration](https://mastra.ai/reference/observability/tracing/configuration) - Configuration options
- [Interfaces](https://mastra.ai/reference/observability/tracing/interfaces) - Type definitions