magazine off

テクノロジー・マガジン OFFです!コラム ✖️ 最新ニュースをほぼ毎日お届けしています。

【まとめ】Flutterでログ出力してデバッグする方法 | Dart【2021】

プログラミング言語Dart (アスキー書籍)

現場で使える Flutter開発入門 (Compass Booksシリーズ)

 

Flutterでログ出力してデバッグする方法

 

[st-kaiwa2]Flutterのログ出力に関して知りたい!教えてほし![/st-kaiwa2]

 

今回の記事では、Flutterのログ出力に関して解説していきます。

 

Web開発でも、スマホアプリ開発でも、ログ出力をしてデバッグするのは大切です。

 

正しい値が入っているか確認したり、バグの原因を突き止める為に重要なのです。

 

[st-kaiwa1]Flutterでは、複数のログ出力方法があるよ!詳しく見ていこう[/st-kaiwa1]

 

この記事を読むことで、Flutterのログ出力を覚えることができます。

 

是非、あなたのFlutter開発で使ってみてください。

 

Flutterのログ出力の種類

まず、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!");

 

参考にした本、記事

 

 

プログラミング言語Dart (アスキー書籍)

現場で使える Flutter開発入門 (Compass Booksシリーズ)

コメントを残す