Visual Basic'te Uygulama Günlükleriyle Çalışma
My.Application.Log
ve My.Log
nesneleri günlüklere günlük ve izleme bilgileri yazmayı kolaylaştırır.
İletilerin Günlüğe Kaydedilmesi
İlk olarak, iletinin önem derecesi günlük TraceSource özelliğinin Switch özelliğiyle denetlendi. Varsayılan olarak, günlüğün TraceListener
koleksiyonunda belirtilen izleme dinleyicilerine yalnızca önem derecesi "Bilgi" ve üzeri iletiler geçirilir. Ardından, her dinleyici iletinin önem derecesini dinleyicinin Switch özelliğiyle karşılaştırır. İletinin önem derecesi yeterince yüksekse dinleyici iletiyi yazar.
Aşağıdaki diyagramda, yöntemine yazılan bir iletinin WriteEntry
günlüğün WriteLine
izleme dinleyicilerinin yöntemlerine nasıl geçirildiğini gösterir:
Uygulamanın yapılandırma dosyasını değiştirerek günlüğün ve izleme dinleyicilerinin davranışını değiştirebilirsiniz. Aşağıdaki diyagramda, günlüğün bölümleri ile yapılandırma dosyası arasındaki yazışma gösterilmektedir.
İletilerin Günlüğe Kaydedildiği Yer
Derlemenin yapılandırma dosyası My.Application.Log
yoksa ve My.Log
nesneleri uygulamanın hata ayıklama çıkışına (sınıfı aracılığıyla DefaultTraceListener ) yazar. Buna ek olarak, My.Application.Log
nesnesi derlemenin günlük dosyasına (sınıf aracılığıyla FileLogTraceListener ) yazarken My.Log
, nesne ASP.NET Web sayfasının çıkışına (sınıf aracılığıyla WebPageTraceListener ) yazar.
Hata ayıklama çıktısı, uygulamanızı hata ayıklama modunda çalıştırırken Visual Studio Çıkış penceresinde görüntülenebilir. Çıkış penceresini açmak için Hata Ayıkla menü öğesine tıklayın, Windows'un üzerine gelin ve çıkış'a tıklayın. Çıkış penceresinde, Çıkışı göster kutusundan Hata Ayıkla'yıseçin.
Varsayılan olarak, My.Application.Log
günlük dosyasını kullanıcının uygulama verilerinin yoluna yazar. Nesnesinin özelliğinden FullLogFileNameDefaultFileLogWriter yolu alabilirsiniz. Bu yolun biçimi aşağıdaki gibidir:
BasePath
\CompanyName
\ProductName
\ProductVersion
için BasePath
tipik bir değer aşağıdaki gibidir.
C:\Documents and Ayarlar\username
\Application Data
, ProductName
ve ProductVersion
değerleri CompanyName
uygulamanın derleme bilgilerinden gelir. Günlük dosyası adının biçimi AssemblyName.log şeklindedir; burada AssemblyName, uzantısı olmayan derlemenin dosya adıdır. Uygulama günlüğe yazmaya çalıştığında özgün günlük kullanılamıyor gibi birden fazla günlük dosyası gerekiyorsa, günlük dosyası adı için form AssemblyName-yinelemesi.log olur ve burada iteration
pozitif Integer
bir olur.
Bilgisayarın ve uygulamanın yapılandırma dosyalarını ekleyerek veya değiştirerek varsayılan davranışı geçersiz kılabilirsiniz. Daha fazla bilgi için bkz . İzlenecek Yol: My.Application.Log'un Bilgileri Yazdığı Yeri Değiştirme.
Günlük Ayarlar Yapılandırma
Log
nesnesi, app.config adlı bir uygulama yapılandırma dosyası olmadan çalışan varsayılan bir uygulamaya sahiptir. Varsayılanları değiştirmek için yeni ayarları içeren bir yapılandırma dosyası eklemeniz gerekir. Daha fazla bilgi için bkz . İzlenecek Yol: My.Application.Log Çıkışını Filtreleme.
Günlük yapılandırma bölümleri, app.config dosyasının <system.diagnostics>
ana <configuration>
düğümündeki düğümde bulunur. Günlük bilgileri birkaç düğümde tanımlanır:
Nesnenin
Log
dinleyicileri DefaultSource adlı düğümde<sources>
tanımlanır.Nesnenin
Log
önem derecesi filtresi DefaultSwitch adlı düğümde<switches>
tanımlanır.Günlük dinleyicileri düğümde
<sharedListeners>
tanımlanır.
, ve <sharedListeners>
düğüm örnekleri <sources>
<switches>
aşağıdaki kodda gösterilmiştir:
<configuration>
<system.diagnostics>
<sources>
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener,
Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"
/>
</sharedListeners>
</system.diagnostics>
</configuration>
Dağıtımdan Sonra Günlük Ayarlar Değiştirme
Bir uygulama geliştirirken, yapılandırma ayarları yukarıdaki örneklerde gösterildiği gibi app.config dosyasında depolanır. Uygulamanızı dağıttığınızda, yapılandırma dosyasını düzenleyerek günlüğü yapılandırmaya devam edebilirsiniz. Windows tabanlı bir uygulamada, bu dosyanın adı applicationName.exe.config'dir ve yürütülebilir dosyayla aynı klasörde bulunmalıdır. Bir Web uygulaması için bu, projeyle ilişkili Web.config dosyasıdır.
Uygulamanız bir sınıfın örneğini oluşturan kodu ilk kez yürüttüğünde, nesne hakkında bilgi için yapılandırma dosyasını denetler. Nesne için Log
, nesneye ilk kez Log
erişildiğinde bu gerçekleşir. Sistem, yapılandırma dosyasını belirli bir nesne için yalnızca bir kez inceler; uygulamanız nesneyi ilk kez oluşturduğunda. Bu nedenle, değişikliklerin geçerli olması için uygulamayı yeniden başlatmanız gerekebilir.
Dağıtılan bir uygulamada, uygulamanız başlamadan önce anahtar nesnelerini yeniden yapılandırarak izleme kodunu etkinleştirirsiniz. Genellikle bu, anahtar nesnelerini açıp kapatmayı veya izleme düzeylerini değiştirip uygulamanızı yeniden başlatmayı içerir.
Güvenlikle İlgili Dikkat Edilmesi Gerekenler
Günlüğe veri yazarken aşağıdakileri göz önünde bulundurun:
Kullanıcı bilgilerini sızıntıktan kaçının. Uygulamanızın yalnızca onaylanan bilgileri günlüğe yazdığından emin olun. Örneğin, uygulama günlüğünün kullanıcı adlarını içermesi kabul edilebilir, ancak kullanıcı parolaları içermeyebilir.
Günlük konumlarını güvenli hale getirin. Hassas olabilecek bilgileri içeren tüm günlükler güvenli bir konumda depolanmalıdır.
Yanıltıcı bilgilerden kaçının. Genel olarak, uygulamanız bu verileri kullanmadan önce bir kullanıcı tarafından girilen tüm verileri doğrulamalıdır. Bu, uygulama günlüğüne veri yazmayı içerir.
Hizmet reddinden kaçının. Uygulamanız günlüğe çok fazla bilgi yazıyorsa, günlüğü doldurabilir veya önemli bilgileri bulmayı zorlaştırabilir.