hamburger-tech-nits

主にプログラミングのNITSな話

Flutterのログ出力にloggerを利用する

pub.dev

開発中のログ出力用にprintを利用すると、リリースビルドでもその情報を出力してしまう。そのため、ロギングライブラリを利用して制御する方法を取るのが一般的。

ネットで雑に調べると、Flutter用のロギングライブラリは代表的なものだけで4~5種類あると言われている。自分はLike数とAndroidのloggerから着想を得ているという文言を決め手にしてloggerを利用している。

loggerはデフォルトでリリースビルドでログ出力されないようになっているので、雑に使っても失敗が少ないのも魅力の一つ。

導入

flutter pub add logger

事前準備

呼び出したいインスタンスをグローバルで定義する。その時設定するパラメータによって、アウトプットの形式やタイミングを調節できる。最初はREADMEのものを参考にして、不満が出てきたら調整していくぐらいの使い方で問題ないはず。自分はprintTimeをtrueにすることが多い。

var logger = Logger(); // デフォルト

var logger2 = Logger(
  printer: PrettyPrinter(
    methodCount: 2, // number of method calls to be displayed
    errorMethodCount: 8, // number of method calls if stacktrace is provided
    lineLength: 120, // width of the output
    colors: true, // Colorful log messages
    printEmojis: true, // Print an emoji for each log message
    printTime: false // Should each log print contain a timestamp
  ),
);

logger_flutterというライブラリを導入すると端末のシェイクでログ画面を表示する機能を追加できるが、開発が止まっているようで挙動が心配。forkしたリポジトリを利用している人をしばしば見かける。

pub.dev

呼び出し

logger.d("Logger is working!");