Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Объекты My.Application.Log и My.Log позволяют легко записывать журнальные и трассировочные данные в логи.
Как регистрируются сообщения
Во-первых, уровень серьезности сообщения проверяется на основании свойства Switch элемента журнала TraceSource. По умолчанию только сообщения с уровнем важности "Информация" и выше передаются слушателям трассировки, указанным в коллекции журнала TraceListener. Затем каждый слушатель сравнивает серьезность сообщения со своим свойством Switch. Если серьезность сообщения достаточно высока, прослушиватель записывает сообщение.
На следующей схеме показано, как сообщение, записанное в метод WriteEntry, передается методам WriteLine прослушивателей трассировки журнала.
Вы можете изменить поведение журнала и прослушивателей трассировки, изменив файл конфигурации приложения. На следующей схеме показано соответствие между частями журнала и файлом конфигурации.
Где регистрируются сообщения
Если сборка не имеет файла конфигурации, объекты My.Application.Log и My.Log записываются в выходные данные отладки приложения через класс DefaultTraceListener. Кроме того, My.Application.Log объект записывается в файл журнала сборки (через FileLogTraceListener класс), а My.Log объект записывает в выходные данные веб-страницы ASP.NET (через WebPageTraceListener класс).
Выходные данные отладки можно просмотреть в окне вывода Visual Studio при запуске приложения в режиме отладки. Чтобы открыть окно вывода , щелкните пункт меню "Отладка ", наведите указатель на Windows и нажмите кнопку "Выходные данные". В окне вывода выберите "Отладка " в поле "Показать выходные данные ".
По умолчанию My.Application.Log записывает файл журнала в каталог данных приложения пользователя. Путь можно получить из FullLogFileName свойства DefaultFileLogWriter объекта. Формат этого пути выглядит следующим образом:
BasePath\CompanyName\ProductName\ProductVersion
Обычное значение для BasePath этого выглядит следующим образом.
C:\Documents and Settings\username\Данные приложения
Значения CompanyName, ProductName и ProductVersion берутся из сведений о сборке приложения. Форма имени файла журнала — AssemblyName.log, где Имя_сборки — имя файла сборки без расширения. Если требуется более одного файла журнала, например, если исходный журнал недоступен, когда приложение пытается записать в журнал, форма для имени файла журнала — AssemblyName-итерация.log, где iteration является положительным числом Integer.
Вы можете переопределить поведение по умолчанию, добавив или изменив файлы конфигурации компьютера и приложения. Дополнительные сведения см. в пошаговом руководстве: Изменение места записи сведений в My.Application.Log.
Настройка параметров журнала
Объект Log имеет реализацию по умолчанию, которая работает без файла конфигурации приложения, app.config. Чтобы изменить значения по умолчанию, необходимо добавить файл конфигурации с новыми параметрами. Дополнительные сведения см. в пошаговом руководстве. Фильтрация выходных данных My.Application.Log.
Разделы конфигурации журнала находятся на <system.diagnostics> узле в главном <configuration> узле файла app.config. Сведения журнала определяются на нескольких узлах:
Прослушиватели для
Logобъекта определяются на<sources>узле с именем DefaultSource.Фильтр серьезности для
Logобъекта определен в<switches>узле с именем DefaultSwitch.Прослушиватели журналов определяются в узле
<sharedListeners>.
Примеры узлов <sources>, <switches> и <sharedListeners> показаны в следующем коде.
<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>
Изменение параметров журнала после развертывания
При разработке приложения параметры конфигурации хранятся в файле app.config, как показано в приведенных выше примерах. После развертывания приложения журнал можно настроить, изменив файл конфигурации. В приложении под управлением Windows имя этого файла — applicationName.exe.config, и оно должно находиться в той же папке, что и исполняемый файл. Для веб-приложения это файл Web.config, связанный с проектом.
Когда приложение выполняет код, который создает экземпляр класса в первый раз, он проверяет файл конфигурации для получения сведений об объекте. Это происходит при первом обращении к объекту Log для объекта Log. Система проверяет файл конфигурации только один раз для любого конкретного объекта— при первом создании объекта приложением. Поэтому может потребоваться перезапустить приложение, чтобы изменения вступили в силу.
В развернутом приложении можно включить код трассировки путем перенастройки объектов коммутатора перед запуском приложения. Как правило, это включает включение и отключение объектов переключателя или изменение уровней трассировки, а затем перезапуск приложения.
Соображения безопасности
При записи данных в журнал следует учитывать следующее:
Избегайте утечки сведений о пользователе. Убедитесь, что приложение записывает только утвержденные сведения в журнал. Например, журнал приложений может содержать имена пользователей, но не пароли пользователей.
Обеспечение безопасности расположений журналов. Любой журнал, содержащий потенциально конфиденциальную информацию, должен храниться в безопасном расположении.
Избегайте вводящей в заблуждение информации. Как правило, приложение должно проверять все данные, введенные пользователем, прежде чем использовать эти данные. Это включает запись данных в журнал приложений.
Избегайте отказа в обслуживании. Если приложение записывает слишком много сведений в журнал, оно может заполнить журнал или сделать поиск важных сведений сложным.