CodeBlanks Logo Icon CodeBlanks

Logger

Logger instance ve hierarşi öğrenirsin.

Logger hiyerarşisi

Logger sınıfı noktayla ayrılmış adlarla hiyerarşik çalışır. Logger('uygulama') üst logger, Logger('uygulama.veritabani') onun alt logger'ıdır. Alt logger, üst logger'ın seviyesini miras alır.

Örnek: Logger.root.level = Level.INFO; iken hem Logger('uygulama') hem Logger('uygulama.veritabani') INFO ve üstü kaydeder. r.loggerName kaydın hangi logger'dan geldiğini verir. Bu, büyük uygulamalarda günlükleri modüllere ayırmanın temiz yoludur; her modül kendi alt logger'ını kullanır.

Üst ve alt logger

Bir alt logger kayıt yazdığında, bu kayıt üst logger'lara da yayılır. Logger.root.onRecord.listen ile tüm kayıtları tek bir handler'da yakalarsın. r.loggerName ile kaydın hangi logger'dan geldiğini ayırırsın.

Örnek: final appLog = Logger('uygulama'); final dbLog = Logger('uygulama.veritabani');. appLog.info('başladı') kaydının adı 'uygulama'; dbLog.info('açıldı') kaydının adı 'uygulama.veritabani'dir. Handler'da r.loggerName'i yazdırarak kaynağı görürsün. Bu, büyük sistemlerde kayıt takibini kolaylaştırır.

Uygulama Üst ve alt logger kayıtları

import 'package:logging/logging.dart'; ekle. main içinde Logger.root.level = Level.INFO; ve Logger.root.onRecord.listen((r) => print('${r.loggerName}: ${r.message}')); ekle. final appLog = Logger('uygulama'); ve final dbLog = Logger('uygulama.veritabani'); oluştur. appLog.info('başladı') ve dbLog.info('açıldı') çağır.

Başlangıç kodu

main.dart
// logging paketini içe aktar

void main() {
  // kök seviye ve handler ayarla, uygulama ve alt logger kayıtları yaz
}

Örnek çözüm

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

void main() {
  Logger.root.level = Level.INFO;
  Logger.root.onRecord.listen((r) => print('${r.loggerName}: ${r.message}'));
  final appLog = Logger('uygulama');
  final dbLog = Logger('uygulama.veritabani');
  appLog.info('başladı');
  dbLog.info('açıldı');
}

Beklenen çıktı

uygulama: başladı
uygulama.veritabani: açıldı

Soru ve cevaplar

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

1 Logger hiyerarşisini eşleştir

Kavram Anlamı
Logger('a.b') Alt logger
'.' Hiyerarşi ayraç
parent Üst
child Alt

2 Logger('a.b') neyi ifade eder?

  • Tek logger
  • İki ayrı logger
  • Hiyerarşik alt logger Doğru cevap
  • Kardeş logger

Açıklama: Logger('a.b') 'a' logger'ının alt logger'ıdır.

3 Alt logger oluşturma

Soru
final dbLog = ____('uygulama.veritabani');
Cevap
final dbLog = Logger('uygulama.veritabani');

Açıklama: Logger('uygulama.veritabani') alt logger oluşturur.

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