Solidity 合约中,如何利用事件与日志机制实现类似printf的功能?
- 内容介绍
- 文章标签
- 相关推荐
嘿, 各位Solidity小伙伴们,你们有没有想过为什么我们在写合约时总爱用 console.log 打印日志,却又发现自己被迫跟随区块链的“黑暗规则”——不能像C++那样随便打印?别担心!今天 我就带你们走进事件与日志机制的大世界,用一份“printf”式的幽默手册,让你在合约里也能轻松打印调试信息,醉了...。
1️⃣ 事件:合约里的“幽灵打印机”
说起事件, 我常把它想象成一台古老而神秘的打印机——只要你给它输入正确格式,它就会把信息送到交易回执里让外界得以窥见内部世界。记住事件是只读的,它不会改变状态,只会产生LOG指令。

1.1 语法小贴士
event DebugUint;
event DebugAddr;
在函数里调用:
1.2 indexed 的魔法
如果你想让日志更容易被筛选,就给字段加上indexed关键字吧!举个例子:
alert);
2️⃣ 用日志实现 printf 的三步曲 🎬
A.定义通用调试事件:
| 类型 | 说明 | ||||
|---|---|---|---|---|---|
| string msg | 自定义消息内容,如“开始施行” 或 “错误码 404” 等。 嘿, 各位Solidity小伙伴们,你们有没有想过为什么我们在写合约时总爱用 console.log 打印日志,却又发现自己被迫跟随区块链的“黑暗规则”——不能像C++那样随便打印?别担心!今天 我就带你们走进事件与日志机制的大世界,用一份“printf”式的幽默手册,让你在合约里也能轻松打印调试信息,醉了...。 1️⃣ 事件:合约里的“幽灵打印机”说起事件, 我常把它想象成一台古老而神秘的打印机——只要你给它输入正确格式,它就会把信息送到交易回执里让外界得以窥见内部世界。记住事件是只读的,它不会改变状态,只会产生 ![]() 1.1 语法小贴士
在函数里调用: 1.2 indexed 的魔法如果你想让日志更容易被筛选,就给字段加上
2️⃣ 用日志实现 printf 的三步曲 🎬A.定义通用调试事件:
|

