Özet - Günlükleme
- Dart kursu
- İleri seviye
- Ders 66/83
- 5 dk
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
// 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
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ı
final record = ____({'logger': r.loggerName, 'level': r.level.name, 'msg': r.message});
final record = jsonEncode({'logger': r.loggerName, 'level': r.level.name, 'msg': r.message});
Açıklama: jsonEncode Map'i JSON dizesine çevirir.