05. デバッグログ取得方法
NEQTO Engine上で実行される動作スクリプトは、neqto.js(JavaScript)を使用して開発を行います。
その際、printメソッドを利用して、任意のログを出力しながらデバッグ評価を行います。
概要
下記のログ取得方法があります。
[system][info]Certification Complete(00.00.00)
[system][info]Checking Script...
[system][info]Ready
Thu Apr 08 2021 02:31:03 GMT+00:00+766ms : Hello World!!! 0
Thu Apr 08 2021 02:31:04 GMT+00:00+766ms : Hello World!!! 1
Thu Apr 08 2021 02:31:05 GMT+00:00+766ms : Hello World!!! 2
Thu Apr 08 2021 02:31:06 GMT+00:00+766ms : Hello World!!! 3
Thu Apr 08 2021 02:31:07 GMT+00:00+766ms : Hello World!!! 4
Thu Apr 08 2021 02:31:08 GMT+00:00+766ms : Hello World!!! 5
Thu Apr 08 2021 02:31:09 GMT+00:00+766ms : Hello World!!! 6
Thu Apr 08 2021 02:31:10 GMT+00:00+766ms : Hello World!!! 7
Thu Apr 08 2021 02:31:11 GMT+00:00+766ms : Hello World!!! 8
Thu Apr 08 2021 02:31:12 GMT+00:00+766ms : Hello World!!! 9
Thu Apr 08 2021 02:31:13 GMT+00:00+766ms : Hello World!!! 10
ログ設定
ログ機能を使用する場合、事前にログの出力先を設定する必要があります。
JavaScript上からLogオブジェクトのメソッドを使用して設定を行います。
ログ取得方法
1. NEQTOデーモンログを使用する方法
LogオブジェクトのprintLevelメソッドを使用して、ログの出力先を設定します。
対象ノードのスクリプトに下記コードを追加します。
出力先として「NEQTOデーモンログ出力」を指定します。log.printLevel(2);
スクリプトを動作させます。
printログがNEQTOデーモンログに出力されます。
$ tail -F /tmp/neqto/log/neqto.log↵
[system][info]Certification Complete(00.00.00)
[system][info]Checking Script...
[system][info]Ready
Thu Apr 08 2021 02:31:03 GMT+00:00+766ms : Hello World!!! 0
Thu Apr 08 2021 02:31:04 GMT+00:00+766ms : Hello World!!! 1
Thu Apr 08 2021 02:31:05 GMT+00:00+766ms : Hello World!!! 2
Thu Apr 08 2021 02:31:06 GMT+00:00+766ms : Hello World!!! 3
Thu Apr 08 2021 02:31:07 GMT+00:00+766ms : Hello World!!! 4
Thu Apr 08 2021 02:31:08 GMT+00:00+766ms : Hello World!!! 5
Thu Apr 08 2021 02:31:09 GMT+00:00+766ms : Hello World!!! 6
Thu Apr 08 2021 02:31:10 GMT+00:00+766ms : Hello World!!! 7
Thu Apr 08 2021 02:31:11 GMT+00:00+766ms : Hello World!!! 8
Thu Apr 08 2021 02:31:12 GMT+00:00+766ms : Hello World!!! 9
Thu Apr 08 2021 02:31:13 GMT+00:00+766ms : Hello World!!! 10
2. NEQTOデバイス上の不揮発メモリにログを保存し、NEQTO Consoleからの遠隔指示によりログを取得する方法
LogオブジェクトのprintLevelメソッドを使用して、ログの出力先を設定します。
対象ノードのスクリプトに下記コードを追加します。
出力先として「NEQTOデバイス上の不揮発メモリにログ保存」を指定します。log.printLevel(1);
スクリプトを動作させます。
printログは不揮発メモリに蓄積されます。NEQTO Consoleから対象ノードに対して「デバッグログを取得」を指示します。
NEQTOデバイスはNEQTO Consoleからデバッグログ取得指示を受信すると、動作スクリプトを終了し、ログのアップロードを開始します。ログ転送が完了すると、再び動作スクリプトが実行されます。尚、ログ転送が成功した場合、不揮発メモリ上のログは消去されます。
しばらくすると、デバイスからログデータがNEQTO Console上にアップロードされます。
ログデータをダウンロードします。
ダウンロードしたファイルをテキストエディタで開き、ログを確認します。
3. NEQTO Consoleにログをリアルタイム送信し、NEQTO Console上でログを確認する方法
- 事前にこちらを参照して、この機能に関する注意事項を確認してください。
- 本機能では、NEQTO Infinitypoolを使用します。
NEQTO Infinitypoolを使用するためにはオプション契約が必要となります。
LogオブジェクトのprintLevelメソッドを使用して、ログの出力先を設定します。
対象ノードのスクリプトに下記コードを追加します。
出力先として「NEQTO Consoleにログをリアルタイム送信」を指定します。
インスタンスIDは任意の値を指定します。(設定例 :100
)log.printLevel(4,100);
NEQTO Consoleのコンポーネント設定を行います。
対象ノードのテンプレートに、下記コンポーネントを追加します。
名前 備考 オブジェクト リソース インスタンス 任意 (設定例 : DebugLog
)任意 テキスト表示 テキスト 任意 (設定例 : 100
)スクリプトを動作させます。
printログがコンポーネント(DebugLog
)に表示されます。