
【まとめ】Flutterでログ出力してデバッグする方法 | Dart【2021】
現場で使える Flutter開発入門 (Compass Booksシリーズ)
目次
Flutterでログ出力してデバッグする方法
今回の記事では、Flutterのログ出力に関して解説していきます。
Web開発でも、スマホアプリ開発でも、ログ出力をしてデバッグするのは大切です。
正しい値が入っているか確認したり、バグの原因を突き止める為に重要なのです。
[st-kaiwa1]Flutterでは、複数のログ出力方法があるよ!詳しく見ていこう[/st-kaiwa1]
この記事を読むことで、Flutterのログ出力を覚えることができます。
是非、あなたのFlutter開発で使ってみてください。
Flutterのログ出力の種類
Flutterのログ出力を軽くまとめました。ログの書き方忘れた時は参考にしてみてね。https://t.co/ZvCl3eNMgN#プログラミング #プログラミング学習 #プログラミング初心者と繋がりたい #プログラミング初学者 #プログラミングスクール #Dart #Flutter #プログラミング独学 #エンジニア
— りょすけ@プログラマー (@ryosuke_1997) September 4, 2021
まず、Flutterのログ出力の方法はいくつかあります。
例えば、アプリケーションのロギングには、一般的にはprint()やstderステートメントを使用できますが、
他にも下記のように、色々と手段はあります。
- print()
- debugPrint();
- log();
- stderr.writeln()
- developer.log
どれを使っても、アプリケーションの動きをデバッグするには十分でしょう。
しかし誤差はあるため、好みや細かいオプションを吟味して使えばいいです。
print()
Dartのprint()関数は最も簡易的な組み込みログです。基本的にはadb logcatのラッパー)
void main() { print('Hello, World!'); }
stderr.writeln(
こちらも、Dartの基本的なな組み込みログです。
void main() { stderr.writeln('print me'); }
debugPrint()
実はPrint()関数は、一度に多くの情報を出力すると、Androidでは一部のログ行が破棄されることがあります。
これを避けるには、debugPrint()を使います。これはprintのラッパーで、Androidのカーネルに落とされないレベルに出力を調整してくれます。
debugPrint()であれば、それらを避けられるようです。
import 'package:flutter/foundation.dart';
debugPrint('movieTitle: $movieTitle');
developer.log
他にも、こういうのがあります。dart:developer log()関数を使用すると、ロギング出力にもう少し詳細な情報を含めることができます。
import 'dart:developer' as developer;
void main() {
developer.log('log me', name: 'my.app.category');
developer.log('log me 1', name: 'my.other.category');
developer.log('log me 2', name: 'my.other.category');
}
データをログすることも可能です
これは、アプリケーションデータをログコールに渡すこともできたりします。
そのためには、log() の呼び出しで error: という名前のパラメータを使用し、
送信したいオブジェクトを JSON エンコードして、エンコードされた文字列を error パラメータに渡すことになります。
import 'dart:convert';
import 'dart:developer' as developer;
void main() {
var myCustomObject = ...;
developer.log(
'log me',
name: 'my.app.category',
error: jsonEncode(myCustomObject),
);
}
log()
他にも、こういうのがあったり、
import 'dart:developer';
log('data: $data');
Logger()
こういうのもあります。
var logger = Logger();
logger.d("Logger is working!");
参考にした本、記事