Лог-файлы
Home Up Автозапись Буфер обмена Долой пробелы DOS-программы Контролы в массиве Редактор VB Скрытые папки INI-файлы Лог-файлы Миминизация Звук в MP3 Советы

Лог-файлы

Очень полезно, чтобы программа вела лог-файлы своей работы. Особенно записывала туда время и на каком этапе произошел сбой. В дальнейшем это существенно облегчает поиск и исправление ошибки. Вдобавок если вы программу делали на заказ, то цена такого протокола работы резко возрастает. Все что нам нужно для работы - это ввести одну-две переменных и добавить одну ма-а-ахонькую процедурку. Итак, поехали:

Для начала объявим переменную

Private Logging As Boolean

Она будет служить нам для разрешения/запрета ведения подробного протокола работы. Это необходимо, чтобы без нужды не писать в файл большое количество информации. Только время запуска/завершения и код и описание ошибки, если таковая была. Пример будем брать из проекта Почтовый робот

Добавим в программу возможность запуска с ключом /l для ведения подробных логов. это придаст гибкость программе.

'Если программа была запущена с ключем /l, то записываем
'все действия программы в логи, иначе - записываются только
'контрольные точки и сообщения об ошибках
'If Command$ = "/l" Then Logging = True Else Logging = False
If InStr(1, Command$, "/l") > 0 Then Logging = True Else Logging = False

Ну, а теперь осталось только добавить саму процедуру записи действия:

Private Sub Log(Promt As String)
'Процедура, которая ведет логи в зависимости от ключа в
'коммандной строке

'Если переменная установлена в False (запуск без ключа /l), то пропускаем эту 'процедуру
If Logging = False Then Exit Sub
Dim FileNum As Integer
FileNum = FreeFile
Open App.Path & "\checker.log" For Append As FileNum
Write #FileNum, " " & Promt
Close #FileNum
End Sub

Вот и все. Теперь используем ее везде, где хоть что-то делается.

Log Now & "Получение почты" & vbCrLf

Однако для наиболее ответственных точек сделаем отдельную процедуру записи состояния программы в этих точках LogGeneral.

Private Sub LogGeneral(Promt As String)
'Процедура, которая ведет логи.
Dim FileNumb As Integer
FileNumb = FreeFile
Open App.Path & "\checker.log" For Append As FileNumb
Write #FileNumb, " " & Promt
Close #FileNumb
End Sub

 

 

Home ] Up ] О группе ] Статьи ] Исходники ] Орфография ] Проекты ] Наша рассылка ]

Хостинг от uCoz