Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Объекты 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
. Система проверяет файл конфигурации только один раз для любого конкретного объекта— при первом создании объекта приложением. Поэтому может потребоваться перезапустить приложение, чтобы изменения вступили в силу.
В развернутом приложении можно включить код трассировки путем перенастройки объектов коммутатора перед запуском приложения. Как правило, это включает включение и отключение объектов переключателя или изменение уровней трассировки, а затем перезапуск приложения.
Соображения безопасности
При записи данных в журнал следует учитывать следующее:
Избегайте утечки сведений о пользователе. Убедитесь, что приложение записывает только утвержденные сведения в журнал. Например, журнал приложений может содержать имена пользователей, но не пароли пользователей.
Обеспечение безопасности расположений журналов. Любой журнал, содержащий потенциально конфиденциальную информацию, должен храниться в безопасном расположении.
Избегайте вводящей в заблуждение информации. Как правило, приложение должно проверять все данные, введенные пользователем, прежде чем использовать эти данные. Это включает запись данных в журнал приложений.
Избегайте отказа в обслуживании. Если приложение записывает слишком много сведений в журнал, оно может заполнить журнал или сделать поиск важных сведений сложным.