Я переоснащаю старое приложение vb.net, чтобы привести его в соответствие с принципами LUA в Vista. До сих пор приложение использовало несколько механизмов протоколирования, но основной из них заключался в записи журнала в c: \ temp \, если папка существовала. Я хочу заменить эту текущую регистрацию более стандартным механизмом регистрации.
Поскольку это VB, я решил попробовать использовать My.Application.Log
в сочетании с app.config, и это работает, насколько это возможно (хотя я не ожидал, что это дамп в перемещаемый профиль). К сожалению, пользователи привыкли к устранению неполадок с информацией из журнала, а также к отправке журнала, когда они отправляют сообщение об ошибке, и перемещение этого журнала скрывает его довольно хорошо.
Моя мысль - сделать журнал немного более доступным, добавив ссылку на него или, по крайней мере, на папку, в которой он находится, в пользовательском интерфейсе приложения. Однако я не знаю, как определить, куда будет указывать эта ссылка.
Редактировать (добавить информацию):
Мой файл конфигурации более или менее встроен по умолчанию:
<system.diagnostics>
<sources>
<source name="Error Log" 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>
Я бы хотел установить некоторые свойства FileLogTraceListener в файле конфигурации. MaxSize, например (Было предыдущее поведение максимального размера). Я не вижу никакой документации, которая это называет. (На странице FileLogTraceListener имеется некоторый контент сообщества, в котором предлагается, чтобы я мог это сделать, поэтому я проверю это. Мне было бы гораздо удобнее, если бы я нашел официальную документально подтвержденную поддержку для этого Впрочем.)
Если я сделаю это, я должен иметь возможность перебирать коллекцию слушателей трассировки на My.Application.Log
и просто ссылаться на первый FileLogTraceListener FullLogFileName.