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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
gopstop2007
Ветеран
Сообщения: 1136
Зарегистрирован: 25 Март 2009, 21:55

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

Сообщение gopstop2007 » 07 Ноябрь 2018, 21:17

Нужно, записывать свои события (лог) в любой текстовый файл, не используя dos и ascii драйвера. Как можно проще.
Раньше использовал SaveLog Владимира Дягтеренко, но под C10 не работает.
Спасибо за внимание.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
vic7tar
Активист
Сообщения: 137
Зарегистрирован: 09 Февраль 2017, 20:12

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

Сообщение vic7tar » 07 Ноябрь 2018, 23:36

Может апишный WriteFile?
C10, Win10x64

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3711
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

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

Сообщение Игорь Столяров » 08 Ноябрь 2018, 6:40

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

Yufil
Ветеран движения
Сообщения: 1035
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

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

Сообщение Yufil » 08 Ноябрь 2018, 10:49

ABC Free Templates содержат что-то похожее, навскидку нашёл vsDiskFileIOClass.

gopstop2007
Ветеран
Сообщения: 1136
Зарегистрирован: 25 Март 2009, 21:55

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

Сообщение gopstop2007 » 09 Ноябрь 2018, 13:14

спасибо, буду смотреть
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

porutchik
Новичок
Сообщения: 9
Зарегистрирован: 01 Февраль 2009, 5:35

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

Сообщение porutchik » 11 Ноябрь 2018, 19:46

раньше делал так:
#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
!-=*=-!

Yufil
Ветеран движения
Сообщения: 1035
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

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

Сообщение Yufil » 12 Ноябрь 2018, 10:00

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

porutchik
Новичок
Сообщения: 9
Зарегистрирован: 01 Февраль 2009, 5:35

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

Сообщение porutchik » 12 Ноябрь 2018, 15:10

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

Yufil
Ветеран движения
Сообщения: 1035
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

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

Сообщение Yufil » 12 Ноябрь 2018, 15:59

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

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

Аватара пользователя
Губин Игорь
Ветеран
Сообщения: 1148
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

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

Сообщение Губин Игорь » 15 Ноябрь 2018, 14:02

Сделал лет сто назад примитивную функцию WriteLog(строка,файл), которая пишет в текстовый файл через WinAPI. Даже классов там нет. И с тех пор тупо вставляю в нужные места.

Проблем никаких, работает нормально...
Это я только кажусь дураком! На самом деле я полный идиот!

Аватара пользователя
Губин Игорь
Ветеран
Сообщения: 1148
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

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

Сообщение Губин Игорь » 15 Ноябрь 2018, 14:05

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

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

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 755
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

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

Сообщение RaFaeL » 15 Ноябрь 2018, 15:15

Это не кэширование, это VirtualStore (поищите каталог с таким названием и все поймете)

Аватара пользователя
Губин Игорь
Ветеран
Сообщения: 1148
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

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

Сообщение Губин Игорь » 15 Ноябрь 2018, 15:20

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

porutchik
Новичок
Сообщения: 9
Зарегистрирован: 01 Февраль 2009, 5:35

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

Сообщение porutchik » 15 Ноябрь 2018, 19:38

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

Аватара пользователя
Губин Игорь
Ветеран
Сообщения: 1148
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

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

Сообщение Губин Игорь » 16 Ноябрь 2018, 11:17

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

Но привычки у клиентов остались...
Это я только кажусь дураком! На самом деле я полный идиот!

Ответить