Trace ve Debug Sınıfları C# Ders 68

Trace ve Debug Sınıfları C# Ders 68

Trace ve Debug Sınıfları: Bazı uygulamlar yazılmadan önce yapılan girişlerde hangi çıktılar alınıyo ve benzeri durumlar deneme yapmak isteyebilirler.Bu durumda trace ve debug kullanılır.Trace ve debug sınıflarını kullanabilmek için using System.Diagnostics;  isim uzayını eklemek gerekir.

Trace ve Debug Sınıfı Metotları

Write : Çıkış noktasına metin eklemek için kullanılır.Belirtilen yazıyı çıkış noktasına yazdıktan sonra imleci yanda bırakır.Yani bir sonraki eklenecek yazıyı yana ekler.

Örnek:

[code lang=”csharp”]using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

namespace trace_debug

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

Trace.Write("www.gorselprogramlama.com ");

Trace.Write("www.gorselprogramlama.com ");

Trace.Write("www.gorselprogramlama.com ");

Debug.Write("www.gorselprogramlama.com ");

Debug.Write("www.gorselprogramlama.com ");

Debug.Write("www.gorselprogramlama.com ");

}

}

}

[/code]

Aşağıda output penceresine baktığımızda yazıların yanyana yazıldığını görürüz.  Output ekranını göremiyorsanız View menüsünden Ouput‘u tıklayın.

WriteLine: Çıkış noktasına metin eklemek için kullanılır.Belirtilen yazıyı çıkış noktasına yazdıktan sonra imleci bir alt satıra bırakır.Yani bir sonraki eklenecek yazıyı alt satıra ekler.

Örnek:

[code lang=”csharp”]using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

namespace trace_debug

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

Trace.WriteLine("www.gorselprogramlama.com ");

Trace.WriteLine("www.gorselprogramlama.com ");

Trace.WriteLine("www.gorselprogramlama.com ");

Debug.WriteLine("www.gorselprogramlama.com ");

Debug.WriteLine("www.gorselprogramlama.com ");

Debug.WriteLine("www.gorselprogramlama.com ");

}

}

}

[/code]

Aşağıda output penceresine baktğımızda yazıların altalta yazıldığını görürüz.

WriteIf: Çıkış noktasına şarta göre metin eklemek için kullanılır.Şart doğru ise  (true ise) belirtilen yazıyı çıkış noktasına yazdıktan sonra imleci yanda bırakır.Yani bir sonraki eklenecek yazıyı yana ekler.
Şart yanlış (false) ise metin ekleme işlemi yapmaz.

Örnek:

[code lang=”csharp”]using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

namespace trace_debug

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

Trace.WriteIf(true,"www.gorselprogramlama.com ");

}

}

[/code]

Şartı yukarıdaki kodlarda olduğu gibi true yaptğımız zaman aşağıdaki www.gorselprogramlama.com yazısı output ekranında gözükür.

Şartı false yaptğımız zaman aşağıdaki www.gorselprogramlama.com yazısı output ekranında gözükmeyecektir.

WriteLineIf: Çıkış noktasına şarta göre metin eklemek için kullanılır.Şart doğru ise  (true ise) belirtilen yazıyı çıkış noktasına yazdıktan sonra imleci yanda bırakır.Yani bir sonraki eklenecek yazıyı yana ekler.Şart yanlış (false) ise metin ekleme işlemi yapmaz.

Örnek:

[code lang=”csharp”]using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

namespace trace_debug

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

Trace.WriteLineIf(true,"www.gorselprogramlama.com ");

}

}

}

[/code]

Assert: Şart yanlış olduğu zaman metni , ekrana uyarı mesajı olarak getirir.

Fail: Şart doğru olduğu zaman metni , ekrana uyarı mesajı olarak getirir.

TextWriterTraceListener: Bilgileri text dosyasına yazmak için kullanılır.

FileStream sınıfını kullabilmek için using System.IO;  isim uzayını eklemeyi unutmayın.

Örnek :

[code lang=”csharp”]

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

using System.IO;

namespace trace_debug

{

public partial class Form1 : Form

{ //www.gorselprogramlama.com

public Form1()

{

InitializeComponent();

}

private void yaz_Click(object sender, EventArgs e)

{

FileStream d = new FileStream("data.txt", FileMode.OpenOrCreate);

TextWriterTraceListener t = new TextWriterTraceListener(d);

Trace.Listeners.Add(t);

Trace.WriteLine(textBox1.Text, "Adı :");

Trace.WriteLine(textBox2.Text, "Soyadı :");

Trace.Flush();

d.Close();

}

}

} //www.gorselprogramlama.com

[/code]

Debug klasörü program çalıştırılmadan önce aşağıdaki gibidir.

Yukarıdaki bilgiler girilip Yaz butonuna basıldında aşağıdaki debug klasörüne data.txt dosyasının eklendiğini göreceksiniz.

data.txt dosyasının içeriğine bakalım.

EventLogTraceListener: Bilgileri işletim sisteminin Event Log’una yazmak için kullanılır.

[code lang=”csharp”]

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

namespace trace_debug

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void yaz_Click(object sender, EventArgs e)

{

EventLog.CreateEventSource("kk","YY");

EventLog olay = new EventLog();

olay.Source = "kk";

EventLogTraceListener t = new EventLogTraceListener(olay);

Trace.Listeners.Add(t);

Trace.WriteLine(textBox1.Text, "Adı :");

Trace.WriteLine(textBox2.Text, "Soyadı :");

Trace.Flush();

}

}

}

[/code]

Aşağıdaki gözüktüğü gibi işletim sisteminin eventlog’una baktğımızda kodlarla belirtilen bilgilerin eklendiğini görürüz.

Indent : Çıkış noktasına yazalacak metnin sağa kaydırılmasını sağlar.

IndentLevel : Indent ile sağa kaydırılma belirlendikten sonra bu özellik ile kaç birim sağa kaydırılacağını belirleyebiliriz.

IndentSize :IndentLevel ile belirlenen birimin kaç karaktere denk geleceği belirlenir.

Unindent : Sağa kaydırma işlemini geri alır.

Flush:Dosyaya yazma işlemini gerçekleştirir.

Autoflush: Dosyaya yazma işlemini otomatik olarak yapar.     

App.Config Dosyası

Projelerde veritabanı ile ilgili değişiklikleri yapmak için kullanılır.App.config dosyası bir xml dosyasıdır.Eklemek için şu yollar izlenir.     Project menüsü–Add New Item–Application Configuration File –Add tıklanır.

Örnek :

App.config dosyasına yazılacaklar [code lang=”csharp”]

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<appSettings>

<add key="data" value="provider=Microsoft.Jet.4.0…"/>

<add key="durum" value="True"/>

</appSettings>

</configuration>

[/code]

AppSettingsReader sınıfını eklemek için using System.Configuration; isim uzayını eklemeyi unutmayın.

[code lang=”csharp”]

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

using System.Configuration;

namespace trace_debug

{//www.gorselprogramlama.com

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void goster_Click(object sender, EventArgs e)

{

AppSettingsReader k=new AppSettingsReader();

textBox1.Text = k.GetValue("data", typeof(string)).ToString();

textBox2.Text = k.GetValue("durum", typeof(bool)).ToString();

}

}

}

[/code]

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir