Logs y Depuración
Transmite logs de programas en tiempo real e inspecciona transacciones fallidas con solana logs, solana confirm y solana transaction.
Busca en todas las páginas de la documentación
Transmite logs de programas en tiempo real e inspecciona transacciones fallidas con solana logs, solana confirm y solana transaction.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
solana logs
solana logs --url devnet
solana confirm -v <SIGNATURE>
solana transaction <SIGNATURE>Cuándo usar esto:
msg! / println! de tu programa durante el desarrollo local.# Terminal 1: transmitir logs (ejemplo de localnet)
solana config set --url http://127.0.0.1:8899
solana logs
# Terminal 2: invocar tu programa o transferir
solana transfer <RECIPIENT> 0.01 --allow-unfunded-recipient
# o: anchor test / curl RPC sendTransaction
# Después de una tx fallida, inspeccionar la firma
SIG="<FAILED_SIGNATURE>"
solana confirm -v "$SIG"
solana transaction "$SIG" --output json-compact | jq '.meta.logMessages, .meta.err'Lo que esto demuestra:
solana logs se suscribe a logsSubscribe a través de WebSocket RPC.confirm detallado imprime logs del programa y códigos de error en línea.logMessages ordenados para los tickets.solana_program::log capturados en los metadatos de la transacción.solana logs filtra por menciones o muestra toda la salida del programa dependiendo de las banderas.| Paso | Comando | Salida |
|---|---|---|
| Transmitir | solana logs | Líneas de programa en vivo |
| Enviar | app / CLI tx | Firma |
| Verificar | solana confirm -v | Estado + logs |
| Archivar | solana transaction --output json | Blob completo de metadatos |
# Filtrar logs que mencionan el ID de tu programa
solana logs | grep "<YOUR_PROGRAM_ID>"
# Incluir logs de votos (ruidosos)
solana logs --include-votesmsg! excesivo alcanza los límites de CU y tamaño. Solución: registra resúmenes, no datos completos de la cuenta.confirmed o usa confirm -v en scripts.--include-votes a menos que estés depurando validadores.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
Salida estándar de solana-test-validator | Pruebas locales de Anchor | Depuración remota en devnet |
| Pestaña de transacción del Explorador | Compartir enlaces con compañeros de equipo | Captura automatizada en CI |
simulateTransaction RPC | Pre-vuelo sin aterrizar | Post-mortem de fallos aterrizados |
| Pruebas de Surfpool / LiteSVM | Pruebas unitarias deterministas | Observación de tráfico en vivo en mainnet |
Sí - pasa --url devnet o configura la URL de configuración primero. Los endpoints públicos pueden limitar las suscripciones.
El programa puede no haberse ejecutado (instrucción anterior fallida), los logs se truncaron o filtraste el ID de programa incorrecto.
Los códigos de error del programa personalizado se mapean a anchor_lang::error o a tus variantes de ProgramError - decodifica contra el enum de errores de tu programa.
Redirige solana logs > session.log o captura logMessages de la salida JSON de la transacción.
solana confirm -v y los metadatos de la transacción incluyen computeUnitsConsumed en versiones RPC compatibles.
Sí - los logs de instrucciones internas aparecen indentados en el orden de logMessages.
Usa solana transaction <SIG> contra el RPC de mainnet - no necesitas solana logs a menos que estés transmitiendo en vivo.
anchor test imprime la salida estándar del validador directamente; solana logs usa suscripciones RPC - mismo contenido, diferente transporte.
RPC no avanza, firma incorrecta o partición de red. Ctrl+C y reintenta con un endpoint más saludable.
Usa el filtro mentions con logsSubscribe del RPC en el código del cliente; solana logs de la CLI admite filtros de mención según solana logs --help.
Versiones de Stack: Esta página fue 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, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026