Страница 1 из 2

Простое логирование без dos и ascii

Добавлено: 07 Ноябрь 2018, 21:17
gopstop2007
Нужно, записывать свои события (лог) в любой текстовый файл, не используя dos и ascii драйвера. Как можно проще.
Раньше использовал SaveLog Владимира Дягтеренко, но под C10 не работает.
Спасибо за внимание.

Простое логирование без dos и ascii

Добавлено: 07 Ноябрь 2018, 23:36
vic7tar
Может апишный WriteFile?

Простое логирование без dos и ascii

Добавлено: 08 Ноябрь 2018, 6:40
Игорь Столяров
gopstop2007 писал(а): 07 Ноябрь 2018, 21:17Как можно проще.
Совсем простую систему логирования можно сделать с использованием PUTINI().
Там есть ограничение на размер файла, но для рабочих вопросов - подходит. :)

Простое логирование без dos и ascii

Добавлено: 08 Ноябрь 2018, 10:49
Yufil
ABC Free Templates содержат что-то похожее, навскидку нашёл vsDiskFileIOClass.

Простое логирование без dos и ascii

Добавлено: 09 Ноябрь 2018, 13:14
gopstop2007
спасибо, буду смотреть

Простое логирование без dos и ascii

Добавлено: 11 Ноябрь 2018, 19:46
porutchik
раньше делал так:
#EXTENSION (BV_Debug,'Подключить библиотеку отладчика'),APPLICATION
#!--------------------------------------------------------------------------
#AT(%AfterGlobalIncludes)
#IF(%ApplicationLocalLibrary=0)
dbg_dll_mode equate(1)
#ELSE
dbg_dll_mode equate(0)
#ENDIF
#ENDAT
#!----------------------
#AT(%GlobalMap)
COMPILE('!-*-!', BV_DEBUG=1)
! подключить внешний отладчик
MODULE('WSLDEBUG')
PrintDebugString(STRING), NAME('WslDebug$Print'),dll(dbg_dll_mode)
PrintDebugEvent(), NAME('WslDebug$PrintEvent'),dll(dbg_dll_mode)
PrintDebugLine(), NAME('WslDebug$PrintLine'),dll(dbg_dll_mode)
END
!-*-!
#ENDAT
#!------------
#CODE(dbg_event, 'добавить событие в файл отладки'), REQ(BV_Debug)
#DISPLAY('добавить код события Clarion в файл отладки...')
COMPILE('!-==-!', BV_DEBUG=1)
! добавить код события Clarion в файл отладки...
PrintDebugEvent()
!-==-!
#CODE(dbg_string, 'добавить строку в файл отладки'), REQ(BV_Debug)
#DISPLAY('добавить указанную строку в файл отладки')
#PROMPT('строка:', @S30),%SrtDebugBV, REQ
#PROMPT('... и перейти к следующей', CHECK),%SrtLine, DEFAULT(1)
COMPILE('!-=*=-!', BV_DEBUG=1)
#IF (%SrtDebugBV)
PrintDebugString(%SrtDebugBV)
#ENDIF
#IF (%SrtLine)
PrintDebugLine() ! перевести строку
#ENDIF
!-=*=-!

Простое логирование без dos и ascii

Добавлено: 12 Ноябрь 2018, 10:00
Yufil
Всё те же Free ABC Templates имеют шаблон и класс для трассировки отладочной информации внешней утилитой dbgView из Sysinternals Suite. Удобно наблюдать за выполнением в реальном времени... Ещё хорошо, что есть флажок, включающий и выключающий трассировку - нет необходимости удалять код из программы по окончании.

Простое логирование без dos и ascii

Добавлено: 12 Ноябрь 2018, 15:10
porutchik
Yufil писал(а): 12 Ноябрь 2018, 10:00утилитой dbgView из Sysinternals
хуже ее я еще ничего не видел

Простое логирование без dos и ascii

Добавлено: 12 Ноябрь 2018, 15:59
Yufil
Так dbgView только показывает трассировку, скорее всего есть ещё куча аналогов. А вот когда надо ловить ошибку хз где, программа не допускает вызова стандартным дебагером или не может быть приторможена в силу каких-то временнЫх ограничений - другого выхода нет, а сама выводимая инфа обыкновенно выводится программой.

По крайней мере, такую экзотику как Windows-сервисы и CGI-приложения только так и отлаживал. А в ini-файл кинул флажок, указующий-нужно ли трассировку или где? Правда, уже давно ничего уже не отлаживал на Кларионе :(

Простое логирование без dos и ascii

Добавлено: 15 Ноябрь 2018, 14:02
Губин Игорь
Сделал лет сто назад примитивную функцию WriteLog(строка,файл), которая пишет в текстовый файл через WinAPI. Даже классов там нет. И с тех пор тупо вставляю в нужные места.

Проблем никаких, работает нормально...

Простое логирование без dos и ascii

Добавлено: 15 Ноябрь 2018, 14:05
Губин Игорь
Игорь Столяров писал(а): 08 Ноябрь 2018, 6:40Совсем простую систему логирования можно сделать с использованием PUTINI().

Всё это было бы хорошо, если бы не было так грустно...
Под Win10 обнаружилось странное явление: если файл оказался в одном из ситемных каталогов (включая Program Files), то он начинает "кешироваться" со всеми вытекающими...

Простое логирование без dos и ascii

Добавлено: 15 Ноябрь 2018, 15:15
RaFaeL
Это не кэширование, это VirtualStore (поищите каталог с таким названием и все поймете)

Простое логирование без dos и ascii

Добавлено: 15 Ноябрь 2018, 15:20
Губин Игорь
RaFaeL писал(а): 15 Ноябрь 2018, 15:15Это не кэширование, это VirtualStore (поищите каталог с таким названием и все поймете)
Не всё так просто. Дело в том, что запись PutINI происходит нормально, а вот чтение GetINI показывает старое содержимое.

Простое логирование без dos и ascii

Добавлено: 15 Ноябрь 2018, 19:38
porutchik
Губин Игорь писал(а): 15 Ноябрь 2018, 14:05Под Win10 обнаружилось странное явление: если файл оказался в одном из ситемных каталогов (включая Program Files), то он начинает "кешироваться" со всеми вытекающими...
еще с появлением висты перестал делать инсталл програм на кларе в "системные" и иже с ними каталоги

Простое логирование без dos и ascii

Добавлено: 16 Ноябрь 2018, 11:17
Губин Игорь
porutchik писал(а): 15 Ноябрь 2018, 19:38еще с появлением висты перестал делать инсталл програм на кларе в "системные" и иже с ними каталоги
Вернуться к началу

Но привычки у клиентов остались...