LoginSignup
7

More than 3 years have passed since last update.

leisim/logger をつかってログ出力を行う

Last updated at Posted at 2020-03-16

Flutter で使用できる、ログ出力をサポートする leisim/logger についてまとめます。
※ 使用バージョン logger 0.8.3

この投稿は、これらの記事をミックスしまとめました。
- A Guide to Setting up Better Logging in Flutter by Dane Mackier
→ 使用バージョンが古いため、最新バージョンではコードが機能していない
- How to update to 0.8.0 and keep the same LogPrinter

使い方

インストール

pubspec.yaml
  # dependencies:に追記
  logger: ^0.8.3

VSCodeを使っている私は、追記を追加し保存をすれば、自動的にインストールが完了。
自動インストールがされない場合は、pub get する。

基本的な使い方

import 'package:logger/logger.dart';

final logger = Logger();

logger.v('You don\'t always want to see all of these');
logger.d('Logs a debug message');
logger.i('Public Function called');
logger.w('This might become a problem');
logger.e('Something has happened');

このような出力となる
image.png

ログの出力をカスタマイズする

標準の出力の場合、行数がかなり多くなってしまうので1行で表示するように調整します。
Classを準備します。

simple_log_printer.dart
import 'package:logger/logger.dart';

class SimpleLogPrinter extends LogPrinter {
  final String className;
  SimpleLogPrinter(this.className);

  @override
  List<String> log(LogEvent event) {
    AnsiColor color = PrettyPrinter.levelColors[event.level];
    String emoji = PrettyPrinter.levelEmojis[event.level];
    return [color('$emoji [$className]: ${event.message}')];
  }
}

作成したClassを以下のように用います。

import 'package:logger/logger.dart';

final logger = Logger(printer: SimpleLogPrinter('MyClass'));

logger.v('You don\'t always want to see all of these');
logger.d('Logs a debug message');
logger.i('Public Function called');
logger.w('This might become a problem');
logger.e('Something has happened');

このような結果となります。
image.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7