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:

Diagram that shows My log call.

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.

Diagram that shows My log configuration.

İ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

, ProductNameve ProductVersion değerleri CompanyNameuygulamanı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 Integerbir 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.

Ayrıca bkz.