Üst Düzey Programlama



Benzer belgeler
Üst Düzey Programlama

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Üst Düzey Programlama

19 Şubat 2016 Cuma

Orkestra Ürünler. Ana Sayfa / Orkestra Ürünler

Üst Düzey Programlama

Android Ders Notları

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Video Hazırlama Programı ile Öğretim Materyali Oluşturulması

Üst Düzey Programlama

Resim 1. Access açılış sayfası. Resim 2. Access veri tabanı düzenleme sayfası

XML ile Mesaj İşlemleri

Üst Düzey Programlama

BİL-141 Bilgisayar Programlama I (Java)

Proje 1. Arayüz Tasarımı

(Fabrika Şablonu) Factory Pattern. Tasarım şablonlarının Creational (Yaratıcı) Sınıflandırmasına aittir. Fabrika(Factory) Şablonu

Enlil programını açtığımızda karşımıza gelen ilk ekrandır.bu ekranda özel tanımlanmış kullanıcı kodu ve parola ile programa giriş sağlanmaktadır.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İş Akış Yönetimi LOGO Kasım 2014

PAKET TRANSFER SİSTEMİ

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Öğr. Gör. Serkan AKSU 1

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Üst Düzey Programlama

Üst Düzey Programlama

API geliştiricileri. Web server ile yapılan entegrasyonun neticeleri. API Dokumantasyonu

PAKET TRANSFER SİSTEMİ

WebInstaller. 1. Kurulum Đçin Gereksinimler

Elektra Raporlama Sistemi Sunumu

2.50 VERSİYONUMUZDA YER ALACAK, YENİ TEORİK DERS PROGRAMI KILAVUZU

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

DOKÜMAN YÖNETİM SİSTEMİ KULLANIMI GİDEN EVRAK

Açılan programın pencere görünümü aşağıdaki gibidir. 2. Araç Çubuğundan kaydet düğmesi ile

Temel Bilgisayar Programlama

MATLAB KURULUM KILAVUZU

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

MVC Kul anıcı Doğrulama ve Yetkilendirme MVC Filtreler Action Filter FilterAttribute IActionFilter FilterAttribute IActionFilter

Android Studio TextView ve EditText Öğr.Gör. Utku SOBUTAY

2. Belgeye Metin Ekleme

JAL IN İNTERNET TEN İNDİRİLMESİ VE KURULMASI

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

BMRD.exe dosyası ile yapılır (BMDE.EXE kurulumunda c:\byte\entegre\bmrd:exe olarak gelir.)

ile LOGO Ticari Yazılım Entegrasyon Kullanım Kılavuzu

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

ÜNİTE ÜNİTE MICROSOFT POWER POINT - I TEMEL BİLGİ TEKNOLOJİLERİ İÇİNDEKİLER HEDEFLER

Linux Kurulumu (Sürüm 1.52) İçindekiler

C# ile e-posta Göndermek

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

3. Metin ve Görünüm Etiketleri

Hazırlayan Tarih İmza Özge Bakülüer. Gözden Geçiren Tarih İmza Devrim Erdönmez. Onaylayan Tarih İmza İDARE

Zaman Ayarlayıcı İşlemler

TURKCELL HİZMETLERİ. Kullanım Bilgileri. LOGO Kasım 2014

e-yazışma Projesi TBD Kamu-BİB Aylık Bilgilendirme Toplantısı

Linux Dosya ve Dizin Yapısı

Üst Düzey Programlama

E - YENİLİKLER BÜLTENİ

IdeaSoft E-Ticaret ile LOGO Ticari Yazılım Entegrasyon Kullanım Kılavuzu

2. HTML Temel Etiketleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

API JAVA CLIENT Kullanıcı Kılavuzu VERSİYON 2.1

Sunum İçeriği. Programlamaya Giriş

SAYIN MÜŞTERİMİZ. C:\ebyn\Beyannameler\Bilset\ \K XML (buradaki => Firmanın Vergi Numarasıdır.)

MPLAB PROGRAM GELİŞTİRME ORTAMINDA CC8E İLE KOD HAZIRLAMA HAZIRLAYAN: DOÇ. DR. HAMİT ERDEM ARAŞ. GÖR. GENCER TULAY

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

SM 100 Terazi Ayarları. Digi SM 100. SM 100 Terazi Ayarları

MOBILEPAX SOAP PRODUCT API KULLANIM ŞEKLİ

LİGHTKOD SETUP MAKER KULLANIMI 1- Giriş Programı yükledikten sonra Setup Maker programını açtığımızda aşağıdaki pencereyi görürüz. Burada 1.

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

ELEKTRONİK BELGE YÖNETİM SİSTEMİ (EBYS)

Yazılım Kodlama ve İ simlendirme Standartları v1.0

DONATIPRO. Betonarme Donatı Çizim ve Metraj Yazılımı Kullanım Kitapçıkları Eğitim Notları. Donatıpro Metraj Mayıs 2014 Taliasoft Yazılım V.2.

MODSECURITY DENETİM KAYITLARINI ANLAMAK. Gökhan Alkan,

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

MOBILEPAX XML PRODUCT API KULLANIM ŞEKLİ

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

J-Guar Self Servis Kurulumu

Renk kalitesi kılavuzu

Üst Düzey Programlama

DESTEK DOKÜMANI. Kayıt Numaralama

Moodle MOODLE ÖĞRENCİ EL KİTABI HAZIRLAYAN ULAŞ REMZİ KORALAY

İnternet Programcılığı

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

Hızlı Başlangıç Kılavuzu

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

Klavyeden Basit Giriş/Çıkış İşlemleri

Word Otomatik Düzelt

FATURA ŞABLONU TASARLAMA KILAVUZU

PowerPoint 2010 Sunu Hazırlama Programı

MARKAM SMS WEB PORTAL KULLANIM KILAVUZU

MeMu LABORATUVAR KONTROL SISTEMI BETA(Sürüm 0.2) YAZILIM TASARIM Mesut ERDEMİR Mustafa KARAS ( (

Algoritma ve Akış Diyagramları

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ BAHAR DÖNEMİ ÖDEV-3

LINQ (Temel Kavramlar)

Windows Grup İlkesi Düzenleyici

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

AKINSOFT AsKuşak. Yardım Dosyası. Doküman Versiyon : Tarih : Sayfa-1. Copyright 2010 AKINSOFT

2 CORDOVA UYGULAMA DİZİN YAPISI 9 Cordova Uygulama Dizin Yapısı 9 www Klasörü 10 platforms Klasörü 11 plugins Klasörü 12 merges Klasörü 15

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

Transkript:

Üst Düzey Programlama Yazılımda Günlükleme (Logging) Üst Düzey Programlama-ders07/ 1

Günlükleme -Logging Tüm büyük çaplı uygulamalarda günlükleme(logging) ihtiyaçları bulunmaktadır. Bir uygulamanın hata yakalama işlemi genellikle debugger lar tarafından yapılmaktadır. Uygulama büyüdüğünde, çoklu iş parçacıklı olduğunda (multi-threaded) veta dağıtılmış (distributed) bir uygulama olduğunda hata yakalama işlemi son derece zordur. Deneyimler sonucunda günlükleme(logging) in uygulama geliştirmede son derece önemli olduğu ortaya çıkmıştır. Üst Düzey Programlama-ders07/ 2

Günlükleme -Logging Kodun içine günlükleme eklendikten sonra artık insan eli değmeden sürekli olarak programın nasıl çalıştığını izleme imkanımız olur. Günlük bilgileri kalıcı olarak saklanabilir ve daha sonra izlenebilir. Günlüklemenin bazı yan etkileride vardır. Kodun içine eklenen çok fazla günlükleme uygulamanın daha yavaş çalışmasına yol açacaktır. Eklenen kodlar ayrıca kodun okunabilirliğini azaltacaktır. Günlükleme için Java API içindeki sınıflar kullanılabileceği gibi başka sınıflarda kullanılır. Üst Düzey Programlama-ders07/ 3

Java Logging Java API içinde java.util.logging.* paketi altında günlükleme için kullanabileceğimiz çeşitli sınıflar vardır. Uygulamalar günlükleme işlemlerini Logger nesnelerini kullanarak yaparlar. Logger nesnesini kullanarak bir mesaj göndeririz. Bu mesaj LogRecord nesnelerine çevrilir ve Handler sınıflarına gönderilir. Handler da eğer mesaj kendini ilgilendiriyorsa bu mesajı bizim tanımladığımız yere kayıt eder. Üst Düzey Programlama-ders07/ 4

Java Logging Bu yer bir dosya, uzaktaki bir makina, konsol olabilir. Hata nesnesi günlüklenirken bu günlüklemenin biçimi (yani nelerin nasıl yazılacağı) Formatter nesneleri ile değiştirilebilir. Ayrıca Filter nesneleri ile nelerin günlüklenip nelerin günlüklenmeyeceğine belirleyebiliriz. Üst Düzey Programlama-ders07/ 5

Java Logging-Örnek Üst Düzey Programlama-ders07/ 6

Java Logging Uygulamada görüldüğü gibi çeşitli günlükleme seviyeleri bulunmaktadır. Bunlar severe,warning,info,config,fine,finer,finest dır. Önem dereceleri soldan sağa doğru azalmaktadır. Uygulamamızda günlükleme kodunu eklerken eklediğimiz yerin ve günlüklenecek olayın önemine göre bir günlükleme seviyesi seçer ve günlüklenecek olan bilgiyi günlükleriz. Uygulama çalıştığı zaman sadece severe, warning ve info günlükleme seviyesindeki günlükler konsola yazdırılır. Üst Düzey Programlama-ders07/ 7

Java Logging Bunun nedeni Logger nesnesinin varsayılan günlükleme seviyesinin info olmasıdır. Yani en az info seviyesindeki günlükler değerlendirilir, diğerleri önemsenmez. Konsola yazılan günlüğün biçimi (format) : zaman,sınıf,metot,seviye ve mesaj şeklindedir. Yazdığımız günlükleri konsola değilde bir dosyaya yazmak için Handler nesnesini günlüğe ekleriz. Dosya için FileHandler nesnesi kullanılır. Üst Düzey Programlama-ders07/ 8

(Logging)FileHandler-Ornek Üst Düzey Programlama-ders07/ 9

Günlükleme Seviyesinin Değiştirilmesi Seviyeler hangi mesajların yazılacağına (günlüklenmesi) karar veren birinci mekanizmadır. Varsayılan günlükleme seviyesi info dur. Her günlükleme nesnesinin (Logger) kendi seviyesi vardır. Bu seviyeleri değiştirmek için Örn: logger.setlevel(level.warning); şeklinde metot kullanılabilir. Günlükleme seviyesi Logger nesnesinde olduğu gibi ayrıca Handler nesnelerinde de bulunmaktadır. Üst Düzey Programlama-ders07/ 10

Günlükleme Seviyesinin Değiştirilmesi Log() metodunun bizim kullanacağımız daha ayrıntılı parametreleri bulunmaktadır. Örneğin; günlüklemeye bir Exception ekleyebiliriz. logger.log(level.severe, Oluşturma hatası-cok ciddi, new RuntimeException( oluşturma hatası!!! )); Üst Düzey Programlama-ders07/ 11

Logger Nesnelerinde Kalıtım Her logger nesnesini bir adı bulunmaktadır. Bu adın hiyerarşisine göre Logger nesneleride bir hiyerarşi oluştururlar ve üst sınıfta bulunan Logger'ın günlükleme seviyesini miras alır; isterse bu seviyeyi kendisi değiştirebilir. Üst Düzey Programlama-ders07/ 12

Logger Nesnelerinde Kalıtım Üst Düzey Programlama-ders07/ 13

Java Günlüklemenin Çalışma Mekanizması Uygulama mesaj Logger (Level) Handler Çıktı Filter Filter Üst Düzey Programlama-ders07/ 14

Java Günlüklemenin Çalışma Mekanizması Logger nesnesine bir mesaj gönderildiğinde, Logger mesajın seviyesini kontrol eder; eğer seviye > veya = ise bu mesaj LogRecord nesnesine çevrilir ve kendisinde bulunan Filter nesnesine test edilmesi için gönderir. Logger'ın Filter nesnesinde LogRecord geçerse bu nesne Logger nesnesine eklenmiş olan bir Ya da daha fazla sayıdaki Handler nesnelerine gönderilir. Üst Düzey Programlama-ders07/ 15

Java Günlüklemenin Çalışma Mekanizması Handler nesneleride gelen LogRecord nesnesinin seviyesini kendi seviyeleri ile kontrol ederler. Eğer > veya = ise kendilerindeki Filter nesnesine gönderirler. Filter nesnesinden mesaj nesnesi LogRecord geçerse bu LogRecord nesnesi Handler'ın yazabileceği yere günlüklenir. Kullanılan Filter nesnelerine kendimizde bir Filter nesnesi ekleyebiliriz. Bunun için Filter interface'i implement eden bir sınıf oluşturmamız gereklidir. Üst Düzey Programlama-ders07/ 16

Java Günlüklemenin Çalışma Mekanizması Örn; aşağıdaki Filter nesnesi aynı mesaja sahip olan mesaj nesnelerinden sadece birinin günlüklenmesine izin verir. Bu mesajlar arka arkaya gönderilmiş ise sadece birini yazar. Üst Düzey Programlama-ders07/ 17

Java Günlüklemenin Çalışma Mekanizması Üst Düzey Programlama-ders07/ 18

Java Günlüklemenin Çalışma Mekanizması Üst Düzey Programlama-ders07/ 19

Yöneticiler (Handlers) ConsoleHandler: System.err'ye günlükleri yazar. Genelde System.err konsolu gösterdiği için konsola yazar. Üst Düzey Programlama-ders07/ 20

Yöneticiler (Handlers) FileHandler: Dosyaya günlükleri yazar. Yazılacak olan dosya adı yapıcısında verilir. 2. parametre olarak dosyaya ekleme yapılıp yapılmayacağı belirtilir. Üst Düzey Programlama-ders07/ 21

Yöneticiler (Handlers) FileHandler: Dosya isminde çeşitli şablonlar kullanılabilir ve yazılacak dosyanın yerini ve adını dinamik değiştirebilirsiniz. %t: geçici klasöre (Temp) %h: kullanıcının ev dizinine %g: Log rotasyonundaki oluşum numarası %u: teklik numarası Log rotasyonu sürekli çalışan uygulamalarda kullanılır. Uygulama günlük dosyası belirli bir büyüklüğe ulaşınca ya da belirli bir zaman sonr a yeni günlük dosyasına kayıtlar yapılır. Üst Düzey Programlama-ders07/ 22

Yöneticiler (Handlers) Üst Düzey Programlama-ders07/ 23

SocketHandler: Günlük dosyalarını ağ üzerinden XML formatlı olarak başka bir bilgisayara gönderir. Örn: SocketHandler sh = new SocketHandler( 127.0.01,5044); logger.addhandler(sh); Yöneticiler (Handlers) Üst Düzey Programlama-ders07/ 24

Yöneticiler (Handlers) Üst Düzey Programlama-ders07/ 25

Yöneticiler (Handlers) Üst Düzey Programlama-ders07/ 26

Yöneticiler (Handlers) MemoryHandler: Günlükleri belleğe yazar. Belirli bir olay olduğunda (Örneğin; severe seviyeli bir mesaj geldiğinde) tüm günlüğü başka Handler a aktarır. Örn; Logger logger = Logger.getLogger( com.comu.my ); Handler socket= new SocketHandler( 127.0.0.1,5044); Handler memory = new MemoryHandler(socket,1000,Level.SEVERE); logger.addhandler(memory); 1000 mesaj gelince ya da severe seviyeli bir mesaj gelince günlükleme socket Handlerına gönderilir. Üst Düzey Programlama-ders07/ 27

Formatter (Biçimleyici) Logger ve Handler hangi mesajın nereye yazılacağını belirler. Formatter nesnesi ise yazma işleminin biçimini belirtir. Kendi biçimlememizi oluşturmak için Formatter sınıfından kendi sınıfınızı oluşturmanız gereklidir. Üst Düzey Programlama-ders07/ 28

Formatter (Biçimleyici) Üst Düzey Programlama-ders07/ 29

Ayar Dosyası Günlükleme işlemlerinde kodda yaptığımız ayarlamaları bir dosyada yaparak uygulamamızın günlükleme ayarlarını koddan bağımsız olarak dinamik değiştirebiliriz. Ayar Dosyası = /jre/lib klasörü içinde logging.properties dosyasıdır. Üst Düzey Programlama-ders07/ 30

Üst Düzey Programlama Yazılımda Günlükleme (Logging) Üst Düzey Programlama-ders07/ 31