Logger
- Dart kursu
- İleri seviye
- Ders 63/83
- 5 dk
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
// logging paketini içe aktar
void main() {
// kök seviye ve handler ayarla, uygulama ve alt logger kayıtları yaz
}Örnek çözüm
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
final dbLog = ____('uygulama.veritabani');
final dbLog = Logger('uygulama.veritabani');
Açıklama: Logger('uygulama.veritabani') alt logger oluşturur.