3.3. ロガー
概要
- プログラムの実行ログを取る方法を学ぼう
- 本ライブラリを用いると,簡単にシリアルモニタへの出力と SD カードへの保存ができる
- このようなログを記録する機能をロガー(Logger)と呼ぶ
使い方
- 初期化
- 記録
logger.info(message, ...)
: 通常のメッセージlogger.error(message, ...)
: エラーメッセージlogger.warning(message, ...)
: ワーニングメッセージlogger.debug(message, ...)
: デバッグメッセージlogger.setDebug
で有効化した場合のみ出力される
- これらは,シリアルモニタと SD カードそれぞれが有効化されている場合に出力される
- 両方が有効化されている場合は両方に記録される
print
と同様,引数は何個でも指定できる
ソースコード
tutorial_logger.ino
#include <CanSatSchool.h>
// SDカードの SS ピンを指定する場合
// デフォルトで10に設定されているため,変更する場合のみ記述すればよい
// #define PIN_SD_SS 9
void setup()
{
// ロガーを初期化
// パソコンへの出力を有効化する(パソコンを使わない場合は不要)
logger.enableComputer();
// SDカードへのログ記録を有効化する(SDカードを使わない場合は不要)
String file_name = "log.txt"; // 記録するファイル名
logger.enableSDCard(file_name);
// logger.enableSDCard(file_name, PIN_SD_SS); // SDカードの SS ピンを指定する場合
// デバッグ出力を有効化したい場合
// logger.setDebug();
delay(500);
}
void loop()
{
// 通常のメッセージ
logger.info(F("Hello, World!"));
delay(1000);
// エラーメッセージ
logger.error(F("This is an error message."));
delay(1000);
// ワーニングメッセージ
logger.warning(F("This is a warning message."));
delay(1000);
// デバッグメッセージ
// 有効化した場合のみ出力される
logger.debug(F("This is a debug message."));
delay(1000);
// メッセージに数値を含める
logger.info(F("This is a message with a number:"), 123);
delay(1000);
// 変数を用いる
int value = 456;
String message = F("This is a message with a variable:");
logger.info(message, value);
delay(1000);
float pi = 3.14;
logger.info(F("pi ="), pi, F("..."));
delay(1000);
logger.info(F("End of program."));
while (true) {
// プログラム終了
}
}
出力例
上のプログラムを SDカードを差し込まずに 実行した結果,以下のような出力が得られる
1.00 [INFO] [Computer] Initialized
1.00 [INFO] [Logger] Start logging to computer
1.03 [INFO] [SDCard] Initializing...
3.17 [ERROR] [SDCard] Failed to initialize
3.17 [WARNING] [Logger] Logging to SD card is disabled
3.71 [INFO] Hello, World!
4.71 [ERROR] This is an error message.
5.71 [WARNING] This is a warning message.
7.71 [INFO] This is a message with a number: 123
8.71 [INFO] This is a message with a variable: 456
9.72 [INFO] pi = 3.14 ...
10.72 [INFO] End of program.
また,デバッグ出力を有効化した場合,以下のような出力が得られる
1.00 [INFO] [Computer] Initialized
1.00 [INFO] [Logger] Start logging to computer
1.03 [INFO] [SDCard] Initializing...
3.17 [ERROR] [SDCard] Failed to initialize
3.17 [WARNING] [Logger] Logging to SD card is disabled
3.21 [INFO] [Logger] Debug mode is enabled.
3.76 [INFO] Hello, World!
4.76 [ERROR] This is an error message.
5.76 [WARNING] This is a warning message.
6.76 [DEBUG] This is a debug message.
7.76 [INFO] This is a message with a number: 123
8.76 [INFO] This is a message with a variable: 456
9.77 [INFO] pi = 3.14 ...
10.77 [INFO] End of program.