У меня есть программа, которая в настоящее время используется на двух компьютерах и регистрирует большое количество сообщений отладки во время ее продуктивного использования. Каждый компьютер / рабочее место работает с копией файла, и в конце дня эти копии синхронизируются. Не самое чистое решение, которое только можно себе представить, но пока оно подойдет. Теперь программа должна быть развернута на большее число (5-20) компьютеров.
По причинам мониторинга я хочу, чтобы все файлы записывались в один и тот же файл журнала, но я немного боюсь коллизий, когда запись в файл. В худшем случае для меня это ошибка времени выполнения, приводящая к прерыванию работы программы, поскольку конечные пользователи не имеют никаких навыков в области ИТ.
Public Sub ApplyMonitoring(strMessage As String)
'Write strMessage to logfile
Dim strPath As String
strPath = ThisWorkbook.Path & Application.PathSeparator & "debug.log"
On Error GoTo 1
Open strPath For Append As #1
Print #1, Date & ", " & Time & ", " & ThisWorkbook.Name & ", " & (Environ$("Username")) & ", " & strMessage
Close #1
On Error GoTo 0
Exit Sub
1:
'On Error wait for 1-5 seconds and try again
Application.Wait (Time + TimeSerial(0, 0, Int((5 * Rnd) + 1)))
Open strPath For Append As #1
Print #1, Date & ", " & Time & ", " & ThisWorkbook.Name & ", " & (Environ$("Username")) & ", " & strMessage & " (delayed)."
Close #1
End Sub
- Видите ли вы лучший способ добиться отсутствия столкновений? мониторинг?
- Какой простой способ проверить это?
Большое спасибо за вашу помощь и советы!