CodeBlanks Logo Icon CodeBlanks

Özet - Günlükleme

logging, levels ve handler'ı birleştirerek bir log sistemi yazarsın.

Özet - Günlükleme

Bu grupta Dart ile günlükleme yönetimini öğrendik. logging paketi günlük tutar; Level seviyeleri (SEVERE, WARNING, INFO, FINE) filtreler; Logger hiyerarşik adlarla çalışır; handler kayıtları işler; yapılandırılmış günlükleme JSON biçiminde makine dostu çıktı üretir.

Bu özette yapılandırılmış günlükleme ile tüm parçaları bir araya getireceğiz. Program bir logger kurar, handler ile JSON kayıtları üretir ve bir bilgi kaydı yazar. Bu, gerçek bir uygulamanın günlük katmanının küçük ama çalışan örneğidir.

Uygulama Yapılandırılmış günlük özeti

import 'dart:convert'; ve import 'package:logging/logging.dart'; ekle. main içinde Logger.root.level = Level.INFO; ve handler ekle: Logger.root.onRecord.listen((r) { final record = jsonEncode({'logger': r.loggerName, 'level': r.level.name, 'msg': r.message}); print(record); });. final log = Logger('özet'); oluştur ve log.info('tamam') çağır.

Başlangıç kodu

main.dart
// dart:convert ve logging paketini içe aktar

void main() {
  // yapılandırılmış günlükleme: logger, level, msg alanları ile JSON yazdır
}

Örnek çözüm

main.dart
import 'dart:convert';
import 'package:logging/logging.dart';

void main() {
  Logger.root.level = Level.INFO;
  Logger.root.onRecord.listen((r) {
    final record = jsonEncode({'logger': r.loggerName, 'level': r.level.name, 'msg': r.message});
    print(record);
  });
  final log = Logger('özet');
  log.info('tamam');
}

Beklenen çıktı

{"logger":"özet","level":"INFO","msg":"tamam"}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Standart günlükleme paketi?

  • sqflite
  • logging Doğru cevap
  • args
  • dcli

Açıklama: logging Dart'ın standart günlükleme paketidir.

2 Günlükleme kavramlarını eşleştir

Kavram Anlamı
logging Paket
Level Seviye
Logger Günlükleyici
onRecord Handler akışı

3 jsonEncode çağrısı

Soru
final record = ____({'logger': r.loggerName, 'level': r.level.name, 'msg': r.message});
Cevap
final record = jsonEncode({'logger': r.loggerName, 'level': r.level.name, 'msg': r.message});

Açıklama: jsonEncode Map'i JSON dizesine çevirir.

İleri seviye bölümündeki tüm dersler