Использование логов
При покупке библиотеки Shell Ace появляется возможность логгирования вызовов всех методов интерфейсов, реализуемых расширением оболочки. Включить логгирование можно с помощью использования соответствующей директивы в файле decShellExtension.inc из состава Shell Ace.
Использование CodeSite
CodeSite – это профессиональный сервис логов в режиме реального времени от компании Raize Software. Данный сервис в редакции Express входит в состав Delphi начиная с версии XE, для старых версий Delphi ее можно приобрести отдельно.
Для включения логгирования с помощью CodeSite нужно добавить в файл decShellExtension.inc строку {$DEFINE USE_CODESITE} и перекомпилировать ваше расширение. После этого при использовании вашего расширения системой при вызове любого метода в окне CodeSite Live Viewer будет выводиться в реальном времени подробный лог с выводом значений всех входных и выходных параметров и результата работы метода:
Использование текстовых логов
В ряде случает использование CodeSite невозможно. Например, Browser helper object в современных версиях Internet Explorer может работать в режиме Enhanced Protected Mode. В данном режиме BHO имеет пониженные привилегии и не сможет корректно работать с сервисом CodeSite.
Для таких случает предусмотрен режим логгирования с использованием текстовых файлов. Для включения данного режима нужно сделать следующее:
- Добавить в файл decShellExtension.inc строку {$DEFINE USE_FILELOGS}
- Добавить в секцию Initialization любого модуля строку вида LogStream := TFileStream.Create(LogFileName, fmCreate), где LogFileName – это имя файла, в который будут сохранятся логи в текстовом виде. Созданный объект будет автоматически удален при закрытии библиотеки. Рекомендуется, что бы файл располагался в %USER PROFILE%\AppData\LocalLow, поскольку запись и создание подкаталогов в данной папке гарантировано возможны. В тоже время имя файла было уникальным, поскольку одновременно могут быть загружены несколько копий расширений. Один из вариантов кода:
- Перекомпилировать ваше расширение.
Some code here
После этого при использовании вашего расширения системой при вызове любого метода в выбранный вами файл будет добавляться подробный лог с выводом значений всех входных и выходных параметров и результата работы метода.
Не забывайте отключать директивы {$DEFINE USE_CODESITE} и {$DEFINE USE_FILELOGS} при создании финальной сборки.
Смотрите также:
- Что такое расширение оболочки
- Какие бывают расширения оболочки
- Как создать расширение оболочки
- Инициализация расширений оболочки
- Как создать расширение оболочки Context menu
- Как создать расширение оболочки Drag and drop context menu
- Как создать расширение оболочки Drop target
- Как создать расширение оболочки Icon
- Как создать расширение оболочки Info tip
- Как создать расширение оболочки Overlay icon
- Как создать расширение оболочки Preview
- Как создать расширение оболочки Property sheet
- Как создать расширение оболочки Property store
- Как создать расширение оболочки Thumbnail
- Как зарегистрировать расширение оболочки
- Как отлаживать расширение оболочки
- Использование логов