Skip to main content

log

在 Solana 的 Anchor 框架中,msg!emit! 都用于记录日志信息,但它们有不同的用途和行为:

msg!

  • 用途: 用于输出简单的调试信息。
  • 功能: 打印字符串和变量值,类似于标准的调试日志。
  • 使用场景: 适用于在开发和调试过程中,检查程序的执行路径和变量值。
  • 示例:
    msg!("Current value: {}", value);

emit!

  • 用途: 用于触发事件。
  • 功能: 记录结构化的事件日志,这些日志可以被监听和解析。
  • 使用场景: 适用于需要在链上记录特定事件,以便之后进行分析或状态追踪。
  • 示例:
    #[event]
    pub struct MyEvent {
    pub data: u64,
    }

    emit!(MyEvent {
    data: 42,
    });

总结

  • msg! 更适合临时的调试信息。
  • emit! 更适合需要持久化和结构化的事件记录。