Простое логирование без dos и ascii
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 1707
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Простое логирование без dos и ascii
Нужно, записывать свои события (лог) в любой текстовый файл, не используя dos и ascii драйвера. Как можно проще.
Раньше использовал SaveLog Владимира Дягтеренко, но под C10 не работает.
Спасибо за внимание.
Раньше использовал SaveLog Владимира Дягтеренко, но под C10 не работает.
Спасибо за внимание.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
Простое логирование без dos и ascii
Совсем простую систему логирования можно сделать с использованием PUTINI().
Там есть ограничение на размер файла, но для рабочих вопросов - подходит.
За теми кто отстал - не возвращаться. (С) Кодекс
Простое логирование без dos и ascii
ABC Free Templates содержат что-то похожее, навскидку нашёл vsDiskFileIOClass.
-
- ✯ Ветеран ✯
- Сообщения: 1707
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Простое логирование без dos и ascii
спасибо, буду смотреть
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Простое логирование без dos и ascii
раньше делал так:
#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
!-=*=-!
#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
Всё те же Free ABC Templates имеют шаблон и класс для трассировки отладочной информации внешней утилитой dbgView из Sysinternals Suite. Удобно наблюдать за выполнением в реальном времени... Ещё хорошо, что есть флажок, включающий и выключающий трассировку - нет необходимости удалять код из программы по окончании.
Простое логирование без dos и ascii
хуже ее я еще ничего не виделYufil писал(а): ↑12 Ноябрь 2018, 10:00утилитой dbgView из Sysinternals
Простое логирование без dos и ascii
Так dbgView только показывает трассировку, скорее всего есть ещё куча аналогов. А вот когда надо ловить ошибку хз где, программа не допускает вызова стандартным дебагером или не может быть приторможена в силу каких-то временнЫх ограничений - другого выхода нет, а сама выводимая инфа обыкновенно выводится программой.
По крайней мере, такую экзотику как Windows-сервисы и CGI-приложения только так и отлаживал. А в ini-файл кинул флажок, указующий-нужно ли трассировку или где? Правда, уже давно ничего уже не отлаживал на Кларионе
По крайней мере, такую экзотику как Windows-сервисы и CGI-приложения только так и отлаживал. А в ini-файл кинул флажок, указующий-нужно ли трассировку или где? Правда, уже давно ничего уже не отлаживал на Кларионе
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2353
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Простое логирование без dos и ascii
Сделал лет сто назад примитивную функцию WriteLog(строка,файл), которая пишет в текстовый файл через WinAPI. Даже классов там нет. И с тех пор тупо вставляю в нужные места.
Проблем никаких, работает нормально...
Проблем никаких, работает нормально...
Это я только кажусь дураком! На самом деле я полный идиот!
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2353
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Простое логирование без dos и ascii
Игорь Столяров писал(а): ↑08 Ноябрь 2018, 6:40Совсем простую систему логирования можно сделать с использованием PUTINI().
Всё это было бы хорошо, если бы не было так грустно...
Под Win10 обнаружилось странное явление: если файл оказался в одном из ситемных каталогов (включая Program Files), то он начинает "кешироваться" со всеми вытекающими...
Это я только кажусь дураком! На самом деле я полный идиот!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1379
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Простое логирование без dos и ascii
Это не кэширование, это VirtualStore (поищите каталог с таким названием и все поймете)
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2353
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Простое логирование без dos и ascii
Не всё так просто. Дело в том, что запись PutINI происходит нормально, а вот чтение GetINI показывает старое содержимое.
Это я только кажусь дураком! На самом деле я полный идиот!
Простое логирование без dos и ascii
еще с появлением висты перестал делать инсталл програм на кларе в "системные" и иже с ними каталогиГубин Игорь писал(а): ↑15 Ноябрь 2018, 14:05Под Win10 обнаружилось странное явление: если файл оказался в одном из ситемных каталогов (включая Program Files), то он начинает "кешироваться" со всеми вытекающими...
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2353
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Простое логирование без dos и ascii
porutchik писал(а): ↑15 Ноябрь 2018, 19:38еще с появлением висты перестал делать инсталл програм на кларе в "системные" и иже с ними каталоги
Вернуться к началу
Но привычки у клиентов остались...
Это я только кажусь дураком! На самом деле я полный идиот!