【Solidity】デバッグログを出力するには?

Solidityでデバッグログを出力する方法について解説します。

Remix(Ethereum IDE)を使用していることが前提となります。

構文

デバッグログの出力方法と確認方法について、それぞれ記します。

出力方法

Solidityでデバッグログを出力するには、以下のようにします。

event/emitの記述はセットとなります。

また、イベントには複数の引数を設定できます。

event イベント名(引数1[データ型], 引数2[データ型], ..., 引数n[データ型]);
emit イベント名(値1, 値2, ..., 値n);

確認方法

Solidityでデバッグログを確認するには、“Debug”ボタン右の矢印アイコンを展開します。

“Debug”ボタン右の矢印アイコン(Remix)
“Debug”ボタン右の矢印アイコン(Remix)

そして、デバッグ内容にある“logs”の項目に注目し、“event”, “args”の値を確認します。

“logs” > “event”, “args”を確認
“logs” > “event”, “args”を確認

サンプルコード

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Test {

    event DebugLogEvent(string); // 単一引数
    event DebugLogEventByUser(address, string); // 複数引数
    
    string message = "Hello World";

    function printDebugLog() public {
        emit DebugLogEvent(message);
    }

    function printDebugLogByUser() public {
        emit DebugLogEventByUser(msg.sender, message);
    }

}

Solidityのログ出力は少しややこしいですね。とはいえ、ログ出力はコードを書く上で必要不可欠なので、しっかりとマスターしておきましょう。

タイトルとURLをコピーしました