# LogViewer

Source: /tuil/docs/reference/components/structured-viewers/log-viewer
Locale: en

LogViewer component API, behavior, and executable example.





{/* Generated by tooling/docs/generate-reference.ts. */}

<PublishedStory storyId="component-acceptance" variant="LogViewer" />

## API and events [#api-and-events]

Inspect streaming logs, expandable structured values, and line-oriented changes in terminal-bounded viewports.

```tsx
export function LogViewer(props: LogViewerProps): ReactNode;
```

### Props, functions, and events [#props-functions-and-events]

| Member           | Type                                                                             | Required | Description                                                                                                             | Related types                                                     |
| ---------------- | -------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| `lines`          | `readonly (string \| LogEntry)[]`                                                | Yes      | The `lines` member uses the `readonly (string \| LogEntry)[]` contract.                                                 | —                                                                 |
| `height`         | `number \| undefined`                                                            | No       | The `height` member uses the `number \| undefined` contract.                                                            | —                                                                 |
| `width`          | `number \| undefined`                                                            | No       | The `width` member uses the `number \| undefined` contract.                                                             | —                                                                 |
| `maxLines`       | `number \| undefined`                                                            | No       | The `maxLines` member uses the `number \| undefined` contract.                                                          | —                                                                 |
| `filter`         | `string \| undefined`                                                            | No       | The `filter` member uses the `string \| undefined` contract.                                                            | —                                                                 |
| `follow`         | `boolean \| undefined`                                                           | No       | The `follow` member uses the `boolean \| undefined` contract.                                                           | —                                                                 |
| `defaultFollow`  | `boolean \| undefined`                                                           | No       | The `defaultFollow` member uses the `boolean \| undefined` contract.                                                    | —                                                                 |
| `onFollowChange` | `((follow: boolean) => void \| Promise<void>) \| undefined`                      | No       | The `onFollowChange` member uses the `((follow: boolean) => void \| Promise<void>) \| undefined` contract.              | —                                                                 |
| `showTimestamp`  | `boolean \| undefined`                                                           | No       | The `showTimestamp` member uses the `boolean \| undefined` contract.                                                    | —                                                                 |
| `staticLimit`    | `number \| undefined`                                                            | No       | The `staticLimit` member uses the `number \| undefined` contract.                                                       | —                                                                 |
| `autoFocus`      | `boolean \| undefined`                                                           | No       | The `autoFocus` member uses the `boolean \| undefined` contract.                                                        | —                                                                 |
| `variant`        | `string \| undefined`                                                            | No       | The `variant` member uses the `string \| undefined` contract.                                                           | —                                                                 |
| `size`           | `"sm" \| "md" \| "lg" \| undefined`                                              | No       | The `size` member uses the `"sm" \| "md" \| "lg" \| undefined` contract.                                                | —                                                                 |
| `unstyled`       | `boolean \| undefined`                                                           | No       | The `unstyled` member uses the `boolean \| undefined` contract.                                                         | —                                                                 |
| `className`      | `string \| undefined`                                                            | No       | The `className` member uses the `string \| undefined` contract.                                                         | —                                                                 |
| `layout`         | `Partial<Omit<LayoutNodeInput, "children" \| "id" \| "semantics">> \| undefined` | No       | The `layout` member uses the `Partial<Omit<LayoutNodeInput, "children" \| "id" \| "semantics">> \| undefined` contract. | —                                                                 |
| `id`             | `string \| undefined`                                                            | No       | The `id` member uses the `string \| undefined` contract.                                                                | —                                                                 |
| `testId`         | `string \| undefined`                                                            | No       | The `testId` member uses the `string \| undefined` contract.                                                            | —                                                                 |
| `role`           | `SemanticRole \| undefined`                                                      | No       | The `role` member uses the `SemanticRole \| undefined` contract.                                                        | [`SemanticRole`](/tuil/docs/reference/packages/core/api/semantic-role) |
| `label`          | `string \| undefined`                                                            | No       | The `label` member uses the `string \| undefined` contract.                                                             | —                                                                 |
| `description`    | `string \| undefined`                                                            | No       | The `description` member uses the `string \| undefined` contract.                                                       | —                                                                 |
| `disabled`       | `boolean \| undefined`                                                           | No       | The `disabled` member uses the `boolean \| undefined` contract.                                                         | —                                                                 |
| `readOnly`       | `boolean \| undefined`                                                           | No       | The `readOnly` member uses the `boolean \| undefined` contract.                                                         | —                                                                 |
| `selected`       | `boolean \| undefined`                                                           | No       | The `selected` member uses the `boolean \| undefined` contract.                                                         | —                                                                 |
| `checked`        | `boolean \| undefined`                                                           | No       | The `checked` member uses the `boolean \| undefined` contract.                                                          | —                                                                 |
| `expanded`       | `boolean \| undefined`                                                           | No       | The `expanded` member uses the `boolean \| undefined` contract.                                                         | —                                                                 |
| `valueText`      | `string \| undefined`                                                            | No       | The `valueText` member uses the `string \| undefined` contract.                                                         | —                                                                 |

`LogViewer` reports follow state; JSON expansion can be controlled; pure transformation helpers emit nothing.

Callback props run after the documented input is accepted. Callbacks are not cancellable unless their return type or description states otherwise.

## Interaction and capabilities [#interaction-and-capabilities]

Viewers scroll and filter; JSON nodes expand or collapse; diff output remains deterministic in static mode.

The published manifest records keyboard, focus, pointer, theme, terminal, semantic, event, and dependency requirements.

## Complete import [#complete-import]

```tsx
import { LogViewer } from "@/components/tuil/data-display/log-viewer";
```
