Aracılığıyla paylaş


Visual Basic'te Uygulama Günlükleriyle Çalışma

My.Application.Log ve My.Log nesneleri kayıt ve izleme bilgilerini günlüklere yazmayı kolaylaştırır.

Mesajların Günlüğe Kaydedilme Şekli

İlk olarak, iletinin önem derecesi günlük Switch özelliğinin TraceSource özelliğiyle kontrol edilir. Varsayılan olarak, günlüğün TraceListener koleksiyonunda belirtilen izleme dinleyicilerine yalnızca önem derecesi 'Bilgi' ve daha yüksek olan iletiler aktarılır. 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 diyagram, bir mesajın WriteEntry yöntemine yazıldığında, günlüğün WriteLine izleme dinleyicilerinin yöntemlerine nasıl geçtiğini gösterir.

Benim günlük çağrımı gösteren diyagram.

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.

Günlük yapılandırmamı gösteren diyagram.

İletilerin Kaydedildiği Yer

Derleme için bir yapılandırma dosyası yoksa, My.Application.Log ve My.Log nesneleri uygulamanın hata ayıklama çıkışına DefaultTraceListener sınıfı aracılığıyla 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. FullLogFileName nesnesinin DefaultFileLogWriter özelliğinden 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 Settings\username\Application Data

CompanyName, ProductName ve ProductVersion değerleri, 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üğün kullanılamaması durumunda birden fazla günlük dosyası gerekiyorsa, günlük dosyası adı için biçim AssemblyName-yineleme.log olur, iteration pozitif bir tam sayı olacak şekilde.

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.

Kayıt Ayarlarını Yapılandırma

Log nesnesi, app.configbir 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 İzlenecek Yol: My.Application.Log Çıkışını Filtreleme bölümüne bakın.

Günlük yapılandırma bölümleri, app.config dosyasının ana <system.diagnostics> düğümündeki <configuration> düğümünde bulunur. Günlük bilgisi birkaç düğümde tanımlanır.

  • Log nesnesinin dinleyicileri, DefaultSource adlı <sources> düğümünde tanımlanır.

  • Log nesnesi için önem derecesi filtresi, DefaultSwitch adlı <switches> düğümünde tanımlanır.

  • <sharedListeners> düğümünde günlük dinleyiciler tanımlanır.

<sources>, <switches> ve <sharedListeners> düğümlerinin örnekleri aşağıdaki kodda gösterilmektedir.

<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ını 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.configve yürütülebilir dosyayla aynı klasörde bulunmalıdır. Web uygulaması için bu, projeyle ilişkilendirilmiş 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. Log nesnesi için, Log nesnesine ilk kez 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.

  • Kayıt günlüğü konumunu 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 bakınız