Logs e Depuração
Stream logs de programa em tempo real e inspecione transações falhadas com solana logs, solana confirm e solana transaction.
Busque em todas as páginas da documentação
Stream logs de programa em tempo real e inspecione transações falhadas com solana logs, solana confirm e solana transaction.
Card de receita de referência rápida - pronto para copiar e colar.
solana logs
solana logs --url devnet
solana confirm -v <SIGNATURE>
solana transaction <SIGNATURE>Quando usar:
msg! / println! do seu programa durante dev local.# Terminal 1: stream logs (localnet example)
solana config set --url http://127.0.0.1:8899
solana logs
# Terminal 2: invoke your program or transfer
solana transfer <RECIPIENT> 0.01 --allow-unfunded-recipient
# or: anchor test / curl RPC sendTransaction
# After a failed tx, inspect signature
SIG="<FAILED_SIGNATURE>"
solana confirm -v "$SIG"
solana transaction "$SIG" --output json-compact | jq '.meta.logMessages, .meta.err'O que isso demonstra:
solana logs subscreve logsSubscribe via WebSocket RPC.logMessages ordenados para tickets.solana_program::log capturadas no meta da transação.solana logs filtra por mentions ou mostra todo output de programa conforme flags.| Passo | Comando | Output |
|---|---|---|
| Stream | solana logs | Linhas live de programa |
| Submit | app / CLI tx | Signature |
| Verify | solana confirm -v | Status + logs |
| Archive | solana transaction --output json | Blob meta completo |
# Filter logs mentioning your program ID
solana logs | grep "<YOUR_PROGRAM_ID>"
# Include vote logs (noisy)
solana logs --include-votesmsg! excessivo atinge limites de CU e tamanho. Correção: logue resumos, não data completo de conta.confirmed ou use confirm -v em scripts.--include-votes a menos que depurando validators.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
stdout solana-test-validator | Testes Anchor locais | Debug devnet remoto |
| Aba de transação do explorer | Compartilhar links com colegas | Captura automatizada em CI |
RPC simulateTransaction | Pre-flight sem pouso | Post-mortem de falhas que pousaram |
| Testes Surfpool / LiteSVM | Testes unitários determinísticos | Assistir tráfego mainnet live |
Sim - passe --url devnet ou defina URL config primeiro. Endpoints públicos podem rate-limitar subscriptions.
Programa pode não ter executado (instruction anterior falhou), logs truncados ou você filtrou program ID errado.
Códigos de erro customizados mapeiam para anchor_lang::error ou suas variantes ProgramError - decode contra enum de erro do programa.
Pipe solana logs > session.log ou capture logMessages do output JSON de transação.
solana confirm -v e meta de transação incluem computeUnitsConsumed em versões RPC compatíveis.
Sim - logs de inner instruction aparecem indentados na ordem de logMessages.
Use solana transaction <SIG> contra RPC mainnet - não precisa de solana logs a menos que streamando live.
anchor test imprime stdout do validator diretamente; solana logs usa subscriptions RPC - mesmo conteúdo, transporte diferente.
RPC não avançando, signature errada ou partição de rede. Ctrl+C e retry com endpoint mais saudável.
Use RPC logsSubscribe com filtro mentions em código client; CLI solana logs suporta filtros mention conforme solana logs --help.
Versões do stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026