Registro con msg!
msg! escribe líneas legibles por humanos en los registros de transacciones. Útil para desarrollo y operaciones, pero cada llamada cuesta unidades de cómputo: presupuesta los registros como cualquier código de ruta crítica.
Busca en todas las páginas de la documentación
msg! escribe líneas legibles por humanos en los registros de transacciones. Útil para desarrollo y operaciones, pero cada llamada cuesta unidades de cómputo: presupuesta los registros como cualquier código de ruta crítica.
solana_program::msg!("swap in={} out={}", amount_in, amount_out);Cuándo usar esto:
#[cfg(feature = "verbose_logs")]
macro_rules! vlog { ($($t:tt)*) => { solana_program::msg!($($t)*) }; }
#[cfg(not(feature = "verbose_logs"))]
macro_rules! vlog { ($($t:tt)*) => {}; }Lo que esto demuestra:
Los registros se cobran por llamada al sistema + bytes.
sol_log_data para pares clave/valor compactos.
// Prefiere prefijos fijos: "MI PROG:paso1"| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
| Solo errores personalizados | Orientado al usuario | Depuración interna |
| Eventos de Anchor | Amigable para indexadores | Las CU aún se aplican |
| Simulación fuera de la cadena | Desarrollo | Producción |
No trivial: simular.
Sí, logMessages.
Segmentos binarios.
Misma llamada al sistema.
Registro de llamada al sistema.
Límite de Tx + CU.
Los eventos son mejores.
Plugins Geyser.
Recomendado o controlar por característica.
Igual.
Volver a perfilar después de la actualización.
Muestra registros en el rastreo.
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