Log plugin

Discuss and announce AkelPad plugins
Post Reply
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Log plugin

Post by Instructor »

Просмотр логов и захват вывода приложения в реальном времени.

Watch logs or capture application output in real-time.


<<Download>>

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

FeyFre wrote:Bug report:
Панелька "Log::Output" всё равно открывается, даже если указан один из Output target флагов.

Feature request:
Код вызова для проверки процесса создания нового файла, аналогично как у Sessions.(Templates добросовестно реагирует на IDM_FILE_NEW).
Log-Rus.txt wrote: FLAGS (сумма следующих):
1 Не отображать панель вывода.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Предложение по Log::Output. В качестве окна вывода использовать не RichEdit, а AkelEdit. При этом все команды, относящиеся к одному процессу, помещать в Fold.
Пример:

Code: Select all

[+]cmd
 | C:\Progs\AkelPad>echo 123
 | 123
 | C:\Progs\Progs\AkelPad>exit
 -
[+]ipconfig
 | Windows IP Configuration
 | ...
 |
 -

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Да, но ожидалось что-бы он неявно применялся. :)
И сразу же фич-реквест вдогонку к первому: добавить запуск от имени.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

DV wrote:Предложение по Log::Output. В качестве окна вывода использовать не RichEdit, а AkelEdit.
Для AkelPad 4.x.x RichEdit == AkelEdit, иначе откуда вертикальное выделение в окне вывода? :)

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

1. Если попытаться вызвать Log::Watch без открытого файла, то выводится сообщение "Нет файлов для просмотра.". Можно ли откорректировать сообщение так, чтобы было понятно, что файл должен быть открыт именно в редакторе (в окне редактирования), т.к. интуитивно я уже не раз перерываю все настройки на предмет кнопки выбора или поля задания пути для файла лога.

2. Непонятно, что и когда будет выводиться в Log::Output.

3. Непонятно, как сделать, чтобы при вызове Log::Watch производилась бы прокрутка в самый конец файла.

4. Прога падает.
Сценарий воспроизведения:
1). Открываю файл в окне редактирования.
2). Вызываю Log::Watch.
3). Вызываю Log::Output.
4). Просто захожу в настройки плага, ничего не меняя закрываю их.
5). Вызываю Log::Watch, выводится сообщение, что плаг остановлен.
6). Вызываю Log::Output, пытаясь скрыть консоль лога.
После п.6) Акел в первый раз вылетел, что "завершил недупустимую операцию", при повторном воспроизведении крэша раздвоилось окно Output, потом прога также вылетела.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

2. Непонятно, что и когда будет выводиться в Log::Output.
Log-Eng.txt написано, что оно "capture output in real-time"
Например, вот такой вот вызов я для теста поставил на горячую клавишу

Code: Select all

Call("Log::Output",1,`"%comspec%" /c "E:\install\akelpad\akelpad\retai\spellcheck\source\make.bat"`,"E:\install\akelpad\akelpad\retai\spellcheck\source","(.*)","$1",-1,-1)
В результате вызова функции получаю в окошке лога прогресс компиляции плагина(а в процессах у АР появляется дочерний процесс который собственно это лог и генерирует). Так просто открывать Log::Output не намереваясь запустить внешний процесс не имеет смысла.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

А самому-то писать в окошко Log::Output можно, например, Scripts-плагином?

И непонятно, зачем 2 механизма: (1) - открывать файл в окне редактирования и смотреть как пишутся логи или (2) - выводить результаты в Log::Output тем же логом? Это просто прикол такой, "мы можем и так, и так"?

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

И непонятно, зачем 2 механизма: (1) - открывать файл в окне редактирования и смотреть как пишутся логи
Вы немножко не догнали в чем тут фича.
Ведь функция называется Log::Output а не Log::Log. Название не ограничивает использование лишь в качестве просмотра логов работы какого-то приложения. Вот есть у нас функция Format::SortStrAsc, что делает - сортирует строки.
А теперь делаем такой вызов

Code: Select all

Call("Log::Output", 1, `"%systemroot%\system32\sort.exe"`, "", "", "", -1, -1, 1052672)
и получаем тот же эффект.
Теперь не трудно догадаться что вместо sort.exe можно поставить что-то типа c:\gunwin32\bin\sed.exe -f my-super-sed-script или c:\gunwin32\bin\gawk.exe -f my-super-gawk-script и получаем мощнейшую тулзу для обработки текста.(погуглите что умеют sed/awk)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh wrote:4. Прога падает...
Исправлено.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: сообщение, при явной остановке плагина, не отображается (Log::Watch).
Добавлено: возможность не прокручивать документ при обновлении (Log::Watch).
Исправлено: выгрузка Log::Watch при работающем Log::Output.

Changed: when plugin stopped manually the message is not displayed (Log::Watch).
Added: option to not scroll document when updating (Log::Watch).
Fixed: Log::Watch unloading when Log::Output is working.


Log plugin v1.1

Offline
Posts: 84
Joined: Fri May 28, 2010 1:28 pm

Post by private_joker »

FeyFre
Можно проще ответить было - перенаправление консольного вывода :)

VladSh
Если Вы с IDE работали когда-нибудь, то могли заметить, что везде есть output: при компиляции, отладке, etc. Т.е. раньше ,я например, собирал проект командами в консоли или батниками (ну помимо самой IDE). Сейчас можно открыть тот же батник, править по ходу дела собирать и контролировать процесс в одной программе. Применений этому масса, я лишь сказал как я намерен использовать.

Instructor
Спасибо за плагин. Ну раз уж контрол свой может можно будет строки с варнингами и ошибками в выводе выделять цветом (ошибки красным, варнинги серым например)?
И еще одно: может для нижней панели пора табы делать? В одной вывод, в другой еще что-нибудь.
P.S. Скоро так дозреете до файлов проектов для акелпада :D

Offline
Posts: 84
Joined: Fri May 28, 2010 1:28 pm

Post by private_joker »

Вдогонку: в поле директория (по кнопке запуск) сделать выбор этой директории баттоном.
Еще: поле комманда (по кнопке запуск) сделать едиткомбобоксом с опцией "запоминать последние N комманд" (в поле директория тоже хорошо бы) :)

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Надо бы добавить поддержку переменных окружения.
А то
C:\Windows\system32\cmd.exe /c tree c:\
выводит, а
%ComSpec% /c tree c:\
– ни в какую:
Не удается запустить команду: %ComSpec% /c tree c:\

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Infocatcher

Code: Select all

Call("Log::Output",1,'%comspec% /c "e:\install\akelpad\AkelPad\retail\spellcheck\Source\make.bat"',"e:\install\akelpad\AkelPad\retail\spellcheck\Source","(.*)","$1",-1,-1,2097152)
Работает

Code: Select all

Call("Log::Output",1,'%comspec% /c tree c:\')
Работает.
Я выше не от фонаря родил пример. Так что это особенности Вашей системы(Моя XPSP3)
Post Reply