ロギング

ファミリーのすべてのパッケージと、それを使って作るアプリケーションは、SpringLog という 1 つのファサードを通してログを出します。

使う理由

ログの出力先はライブラリではなく、アプリケーションが決めるべきです。ファサードが 1 つなら、フレームワーク、スターター、自分のコードがすべて同じ方法でレコードを書き、表示内容と出力先を 1 か所で決められます。レベルはロガー名ごとに設定できるため、アプリケーションの一部だけデバッグ出力を有効にできます。

ロギングのバックエンドがない場合、info 以上のレコードが [logger] LEVEL: message の形式でコンソールに書かれます。spring_boot_starter_logging のようなバックエンドはハンドラーを置き換えます。Spring Boot を使う場合、レベルは logging.level.* プロパティから設定されます。

アプリケーションのログに print を使わないでください。レベルもロガー名もなく、出力先を変えられません。

例

import 'package:spring_core_dart/spring_core_dart.dart';
import 'package:my_app/spring_gen/src/beans.spring.dart'; // 生成されたファイル

@Service()
@Log() // `log` ゲッター: ロガー `my_app.Checkout`
class Checkout {
  void pay(String orderId) {
    log.info('order placed', fields: {'order': orderId});
    // クロージャーは debug が有効なときだけ呼ばれる。
    log.debug(() => 'paying $orderId');
  }
}

ページ一覧

関連項目