CodeBlanks Logo Icon CodeBlanks

Log levels

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

main.dart
// logging paketini içe aktar

void main() {
  // kök seviyeyi WARNING yap, handler ekle, info/warning/severe kaydet
}

Örnek çözüm

main.dart
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ı

Soru
Logger.root.level = ____;
Cevap
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

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