Udostępnij za pośrednictwem


Praca z dziennikami aplikacji w Visual Basic

Obiekty My.Application.Log i My.Log ułatwiają zapisywanie informacji rejestrowania i śledzenia w dziennikach.

Jak są rejestrowane komunikaty

Najpierw ważność komunikatu jest sprawdzana z właściwością Switch właściwości dziennika TraceSource . Domyślnie tylko komunikaty o ważności "Informacje" i wyższe są przekazywane do odbiorników śledzenia określonych w kolekcji dziennika TraceListener . Następnie każdy odbiornik porównuje ważność komunikatu z właściwością odbiornika Switch . Jeśli ważność komunikatu jest wystarczająco wysoka, odbiornik zapisuje komunikat.

Na poniższym diagramie pokazano, jak komunikat zapisany w WriteEntry metodzie jest przekazywany do WriteLine metod odbiorników śledzenia dziennika:

Diagram that shows My log call.

Zachowanie dziennika i odbiorników śledzenia można zmienić, zmieniając plik konfiguracji aplikacji. Na poniższym diagramie przedstawiono korespondencję między częściami dziennika a plikiem konfiguracji.

Diagram that shows My log configuration.

Gdzie są rejestrowane komunikaty

Jeśli zestaw nie ma pliku konfiguracji, My.Application.Log obiekty i My.Log zapisują dane wyjściowe debugowania aplikacji (za pośrednictwem DefaultTraceListener klasy). Ponadto My.Application.Log obiekt zapisuje w pliku dziennika zestawu (za pośrednictwem FileLogTraceListener klasy), podczas gdy My.Log obiekt zapisuje dane wyjściowe ASP.NET stronie internetowej (za pośrednictwem WebPageTraceListener klasy).

Dane wyjściowe debugowania można wyświetlić w oknie Dane wyjściowe programu Visual Studio podczas uruchamiania aplikacji w trybie debugowania. Aby otworzyć okno Dane wyjściowe, kliknij element menu Debuguj, wskaż pozycję Windows, a następnie kliknij pozycję Dane wyjściowe. W oknie Dane wyjściowe wybierz pozycję Debuguj w polu Pokaż dane wyjściowe.

Domyślnie My.Application.Log zapisuje plik dziennika w ścieżce dla danych aplikacji użytkownika. Ścieżkę można pobrać z FullLogFileName właściwości DefaultFileLogWriter obiektu. Format tej ścieżki jest następujący:

BasePath\CompanyName\ProductName\ProductVersion

Typowa wartość parametru BasePath jest następująca.

C:\Documents and Ustawienia\username\Application Data

Wartości CompanyName, ProductNamei ProductVersion pochodzą z informacji o zestawie aplikacji. Nazwa pliku dziennika to AssemblyName.log gdzie AssemblyName jest nazwą pliku zestawu bez rozszerzenia. Jeśli wymagany jest więcej niż jeden plik dziennika, taki jak wtedy, gdy oryginalny dziennik jest niedostępny, gdy aplikacja próbuje zapisać w dzienniku, formularz nazwy pliku dziennika to iteracja AssemblyName-.log gdzie iteration jest dodatnią Integerwartością .

Domyślne zachowanie można zastąpić przez dodanie lub zmianę plików konfiguracji komputera i aplikacji. Aby uzyskać więcej informacji, zobacz Walkthrough: Changing Where My.Application.Log Writes Information (Przewodnik: zmiana miejsca zapisu informacji my.Application.Log).

Konfigurowanie Ustawienia dziennika

Obiekt Log ma domyślną implementację, która działa bez pliku konfiguracji aplikacji app.config. Aby zmienić ustawienia domyślne, należy dodać plik konfiguracji z nowymi ustawieniami. Aby uzyskać więcej informacji, zobacz Przewodnik: filtrowanie danych wyjściowych My.Application.Log.

Sekcje konfiguracji dziennika znajdują się w <system.diagnostics> węźle w głównym <configuration> węźle pliku app.config. Informacje dziennika są definiowane w kilku węzłach:

  • Odbiorniki obiektu Log są definiowane w węźle <sources> o nazwie DefaultSource.

  • Filtr ważności dla Log obiektu jest zdefiniowany w węźle <switches> o nazwie DefaultSwitch.

  • Odbiorniki dziennika są zdefiniowane w węźle <sharedListeners> .

Przykłady węzłów <sources>, <switches>i <sharedListeners> są wyświetlane w następującym kodzie:

<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>

Zmiana Ustawienia dziennika po wdrożeniu

Podczas tworzenia aplikacji jej ustawienia konfiguracji są przechowywane w pliku app.config, jak pokazano w powyższych przykładach. Po wdrożeniu aplikacji nadal można skonfigurować dziennik, edytując plik konfiguracji. W aplikacji opartej na systemie Windows nazwa tego pliku to applicationName.exe.config i musi znajdować się w tym samym folderze co plik wykonywalny. W przypadku aplikacji sieci Web jest to plik Web.config skojarzony z projektem.

Gdy aplikacja wykonuje kod, który tworzy wystąpienie klasy po raz pierwszy, sprawdza plik konfiguracji pod kątem informacji o obiekcie. W przypadku obiektu odbywa się to przy pierwszym uzyskiwaniu LogLog dostępu do obiektu. System sprawdza plik konfiguracji tylko raz dla dowolnego określonego obiektu — przy pierwszym utworzeniu obiektu przez aplikację. W związku z tym może być konieczne ponowne uruchomienie aplikacji, aby zmiany zaczęły obowiązywać.

W wdrożonej aplikacji można włączyć kod śledzenia, konfigurując ponownie obiekty przełącznika przed uruchomieniem aplikacji. Zazwyczaj obejmuje to włączenie i wyłączenie obiektów przełącznika lub zmianę poziomów śledzenia, a następnie ponowne uruchomienie aplikacji.

Zagadnienia związane z zabezpieczeniami

Podczas zapisywania danych w dzienniku należy wziąć pod uwagę następujące kwestie:

  • Unikaj wycieku informacji o użytkowniku. Upewnij się, że aplikacja zapisuje tylko zatwierdzone informacje w dzienniku. Na przykład dziennik aplikacji może zawierać nazwy użytkowników, ale nie hasła użytkowników.

  • Zabezpieczanie lokalizacji dziennika. Każdy dziennik, który zawiera potencjalnie poufne informacje, powinien być przechowywany w bezpiecznej lokalizacji.

  • Unikaj mylących informacji. Ogólnie rzecz biorąc, aplikacja powinna zweryfikować wszystkie dane wprowadzone przez użytkownika przed użyciem tych danych. Obejmuje to zapisywanie danych w dzienniku aplikacji.

  • Unikaj odmowy usługi. Jeśli aplikacja zapisuje zbyt wiele informacji w dzienniku, może wypełnić dziennik lub utrudnić znalezienie ważnych informacji.

Zobacz też