React Log Viewer
The analytical sibling of the Terminal: where the terminal replays a session, the log viewer lets you work a log. Severity chips with live counts toggle levels on and off; the search filters across message and source; and Follow keeps you pinned to the newest line — scroll up and it pauses, scroll back to the bottom and it re-engages, exactly how a good tail behaves. Warn and error rows carry a faint wash on top of their badges, so severity is never color alone.
simulation.log
1.200infouvm_testStarting test smoke_axi4 (seed 88214)
1.337debugscoreboardBuilding environment: 4 agents, 2 scoreboards
1.474infoaxi_monReset released after 200 ns
1.611debugdrv0AW handshake: addr=0x4000_10A0 len=8 size=4
1.748warnregmodelResponse latency 42 cycles exceeds soft limit 32
1.885infouvm_testCoverage: functional 61.2%, code 74.8%
2.022errorscoreboardScoreboard mismatch: exp=0xCAFE_F00D got=0xCAFE_F00F @ 12.4 µs
2.159debugaxi_monRetrying descriptor fetch, attempt 2
2.296infodrv0Checkpoint saved: t=15.0 µs, 1_204 transactions
2.433warnregmodelX detected on interrupt line irq_4 during CDC crossing
2.570infouvm_testStarting test smoke_axi4 (seed 88214)
2.707debugscoreboardBuilding environment: 4 agents, 2 scoreboards
2.844infoaxi_monReset released after 200 ns
2.981debugdrv0AW handshake: addr=0x4000_10A0 len=8 size=4
3.118warnregmodelResponse latency 42 cycles exceeds soft limit 32
3.255infouvm_testCoverage: functional 61.2%, code 74.8%
3.392errorscoreboardScoreboard mismatch: exp=0xCAFE_F00D got=0xCAFE_F00F @ 12.4 µs
3.529debugaxi_monRetrying descriptor fetch, attempt 2
3.666infodrv0Checkpoint saved: t=15.0 µs, 1_204 transactions
3.803warnregmodelX detected on interrupt line irq_4 during CDC crossing
3.940infouvm_testStarting test smoke_axi4 (seed 88214)
4.077debugscoreboardBuilding environment: 4 agents, 2 scoreboards
4.214infoaxi_monReset released after 200 ns
4.351debugdrv0AW handshake: addr=0x4000_10A0 len=8 size=4
4.488warnregmodelResponse latency 42 cycles exceeds soft limit 32
4.625infouvm_testCoverage: functional 61.2%, code 74.8%
4.762errorscoreboardScoreboard mismatch: exp=0xCAFE_F00D got=0xCAFE_F00F @ 12.4 µs
4.899debugaxi_monRetrying descriptor fetch, attempt 2
Live tail — toggle level chips, filter for mismatch, or scroll up to pause Follow.
Installation
npx shadcn@latest add log-viewer.json
Usage
Loading...
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| entries | LogEntry[] | — | { time, level, source?, message } |
| title | string | "Log" | Toolbar label |
| height | number | 320 | Body height in px |
| onClear | () => void | — | Shows the clear button when provided |
level is 'debug' | 'info' | 'warn' | 'error' — chips, badges, and row accents derive from it.