Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 stopniu ważności "Informacyjne" i wyższe są przekazywane do odbiorników śledzenia określonych w kolekcji dziennika TraceListener
. Następnie każdy odbiorca porównuje surowość komunikatu z właściwością odbiornika Switch. Jeśli dotkliwość komunikatu jest wystarczająco wysoka, słuchacz zapisuje komunikat.
Na poniższym diagramie pokazano, jak komunikat zapisany w WriteEntry
metodzie jest przekazywany do WriteLine
metod odbiorników śledzenia dziennika:
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.
Gdzie są rejestrowane komunikaty
Jeśli zestaw nie ma pliku konfiguracji, My.Application.Log
i My.Log
obiekty zapisują dane wyjściowe debugowania aplikacji (za pośrednictwem klasy DefaultTraceListener). Ponadto obiekt My.Application.Log
zapisuje w pliku dziennika biblioteki za pośrednictwem klasy FileLogTraceListener, podczas gdy obiekt My.Log
zapisuje dane wyjściowe na stronie internetowej ASP.NET za pośrednictwem klasy WebPageTraceListener.
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 Settings\username
\Application Data
Wartości CompanyName
, ProductName
i ProductVersion
pochodzą z informacji o zestawie aplikacji. Nazwa pliku dziennika to AssemblyName.log gdzie AssemblyName jest nazwą pliku zestawu bez rozszerzenia. Jeśli potrzebny jest więcej niż jeden plik dziennika, na przykład wtedy, gdy oryginalny dziennik jest niedostępny w momencie, gdy aplikacja próbuje zapisać w dzienniku, format nazwy pliku dziennika to AssemblyName-iteracja.log, gdzie iteration
jest dodatnią Integer
.
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 ustawień 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 węźle <system.diagnostics>
w głównym węźle <configuration>
pliku app.config. Informacje dziennika są definiowane w kilku węzłach:
Odbiorniki obiektu
Log
są definiowane w węźle<sources>
o nazwie DefaultSource.Filtrowanie według stopnia ważności dotyczące obiektu
Log
jest zdefiniowane w węźle<switches>
, nazwanym 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 ustawień 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.configi musi znajdować się w tym samym folderze co plik wykonywalny. W przypadku aplikacji internetowej 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 Log
dzieje się to, gdy po raz pierwszy uzyskuje się dostęp do obiektu Log
. 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 dotyczące zabezpieczeń
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.