Log levels
- Dart kursu
- İleri seviye
- Ders 62/83
- 5 dk
Log seviyeleri (info, warning, severe) öğrenirsin.
Log seviyeleri
logging paketi birden çok seviye (level) tanımlar. Yüksekten düşüğe: Level.SEVERE (kritik), Level.WARNING (uyarı), Level.INFO (bilgi), Level.FINE (detay). Logger.root.level ile minimum seviyeyi ayarlarsın.
Örnek: Logger.root.level = Level.WARNING;. Bu ayar ile sadece WARNING ve üstü (SEVERE) kayıtlar işlenir; INFO ve altı göz ardı edilir. Bu, üretimde gürültüyü azaltmanın standart yoludur. Hata ayıklarken Level.ALL ile her şeyi açarsın; canlıda Level.WARNING ile sadece önemli kayıtları tutarsın.
Seviye filtreleme
Logger.root.level minimum eşiği belirler. Bir kaydın seviyesi bu eşiğin altındaysa göz ardı edilir; handler'a hiç ulaşmaz. Bu, gereksiz kayıtları kesmenin etkili yoludur.
Örnek: Logger.root.level = Level.WARNING; iken log.info('bu göz ardı edilir') kaydı işlenmez; log.warning('dikkat') ve log.severe('kritik') işlenir. Böylece üretimde sadece uyarı ve kritik kayıtlar görülür; bilgi ve detay kayıtları gürültü yapmaz.
Uygulama Seviye filtreli kayıtlar
import 'package:logging/logging.dart'; ekle. main içinde Logger.root.level = Level.WARNING; ile eşiği ayarla. Logger.root.onRecord.listen((r) => print('${r.level.name}: ${r.message}')); ile handler ekle. final log = Logger('uygulama'); oluştur ve üç kayıt yaz: log.info('bu göz ardı edilir'), log.warning('dikkat'), log.severe('kritik').
Başlangıç kodu
// logging paketini içe aktar
void main() {
// kök seviyeyi WARNING yap, handler ekle, info/warning/severe kaydet
}Örnek çözüm
import 'package:logging/logging.dart';
void main() {
Logger.root.level = Level.WARNING;
Logger.root.onRecord.listen((r) => print('${r.level.name}: ${r.message}'));
final log = Logger('uygulama');
log.info('bu göz ardı edilir');
log.warning('dikkat');
log.severe('kritik');
}Beklenen çıktı
WARNING: dikkat SEVERE: kritik
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Level.INFO ayarı
Logger.root.level = ____;
Logger.root.level = Level.INFO;
Açıklama: Logger.root.level = Level.INFO ile minimum seviye INFO olur.
2 Hangi seviye en yüksek öncelik?
- INFO
- SEVERE Doğru cevap
- FINE
- FINEST
Açıklama: SEVERE en yüksek öncelikli seviyedir.
3 Seviyeleri eşleştir
| Kavram | Anlamı |
|---|---|
SEVERE |
En yüksek |
WARNING |
Uyarı |
INFO |
Bilgi |
FINE |
Detay |