ロギング
ファミリーのすべてのパッケージと、それを使って作るアプリケーションは、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');
}
}
ページ一覧
- SpringLog: ロガー、レベル、
@Log、構造化フィールド、ハンドラー、コンソールの形式。