Logging
Описание
Синтаксис
Привязка к окну: да. <br>Работа со свернутым окном: да.
set logging <text | option | mode [параметры]>
альтернативная запись
log <text | option | mode [параметры]>
<text> - текст для вывода в лог. <br><option> - зарезервированные строки, которые выполняют операции с логом:
- on - включить запись в лог
- off - выключить запись в лог
- clear - очистить лог
- save [path] - сохранить лог в файл
- open [x y] [width height] - открыть окно лога. по-умолчанию x=y=-1, w03, h36
- close - закрыть окно лога
- commands - отображение в лог выполняющихся строк скрипта. Включается 'set logging commands', выключается 'set logging off'.
<mode> - установка формата вывода в лог. Параметры:
- noTime - не выводить в лог время
- noNumber - не выводить в лог номер скрипта
- noScript - не выводить в лог имя скрипта
- noLine - не выводить в лог номер строки
- compact - всё выше перечисленное
- без параметров - установить настройки "по-умолчанию" (отображать всё)
log mode [параметры]
Указывается либо <option> либо <text> либо <mode>, но не несколько одновременно.
Примеры
Следует помнить:
- Это общие логи пилота, которые всегда пишутся в Log Window (открыть можно из помощи пилота или опцией set logging open)
- Лог нельзя разделить на части по разными файлам,
- В каждом новом сохраненном файле будет запись о прошедших записях в лог.
- Лог обнуляется при перезапуске пилота либо вызове set logging clear.
- Для использования более детального логирования можно использовать массивы и оператор save_array.
// Пример 1 set #q 2 set %s[1 1] 5 set $s 3 // Пока не исправлен баг, строковую переменную обязательно нужно указать, иначе условие упадет set $luck удача set logging --------------------------------------------------------------- // разделитель для удобства log я нашел %s[1 1] яблок, а скушал #q, и у меня их осталось $s // можно указывать сколько угодно переменных if $s > 5 // Если яблок осталось больше 5, то удачно покушали, иначе объелись set logging $luck else set logging $fail end_if set logging save c:\logs\apple.txt // пишем весь лог в файл
Результат в блокноте: <br>20:07:55 17 (, 4): - --------------------------------------------------------------- <br>20:07:55 17 (, 5): - я нашел 5 яблок, а скушал 2, и у меня их осталось 3 <br>20:07:55 17 (, 7): - удача
//Пример 2 log mode compact log Я нашел 5 яблок. End_script
Смотрите также
Msg <br>Alarm <br>Save_array
История развития
2.18 <br>Добавил логи:
'set logging <option | text>'
Где option:
- 'on' - включить запись в лог
- 'off' - выключить запись в лог
- 'clear' - очистить лог
- 'save [path]' - сохранить лог в файл
- 'open [x y] [width height]' - открыть окно лога. по-умолчанию x=y=-1, w03, h36
- 'close' - закрыть окно лога
Если не распознано, то просто записывается в лог. список команд пишущих в лог пока ограничен. предлагайте что и как должно в лог писать..
2.23 <br>Добавил возможность выводить в лог выполняющиеся строки скрипта. включается 'set logging commands', выключается 'set logging off'. <br>Исправил перманентный вис на конуструкции типа 'set logging clear', 'set logging open'. <br>Добавил возможность выводить в лог выполняющиеся строки скрипта. <br>Включается:
'set logging commands'
выключается:
'set logging off'
2.30 <br>Исправил непропечатывание некоторых символов в начале сообщения команды 'set logging'. <br>Добавил галочку "Автоматически открывать лог" при использовании команды 'set logging text'. <br>Добавил команду 'log', почти аналог 'set logging'.
2.31 <br>Команда 'set logging', указанная без параметров, выводит в лог пустую строку. <br>Сделал вывод в лог настраиваемым отдельно для каждого скрипта с помощью команды 'set logging mode [параметры]'. Если, при очередном вызове этой команды, какой-либо параметр не указан, то он устанавливается в значение "по-умолчанию".
параметры: noTime - не выводить в лог время noNumber - не выводить в лог номер скрипта noScript - не выводить в лог имя скрипта noLine - не выводить в лог номер строки compact - всё выше перечисленное без параметров - установить настройки "по-умолчанию" (отображать всё)
2.32 <br>Добавил вывод в скобках значения элемента массива после его имени, для команды 'set logging commands'. <br>Добавил вывод значения переменной после присваивания в команде 'set', при включенном 'set logging commands'. Выводится отдельной строкой. <br><br>Добавил логи для каждого скрипта отдельно. По достижении 1000 строк, обрезается до 500. Переключаются при переключении закладок скрипта (при активном главном логе 'M', переключения не происходит), или непосредственно в окне лога. В связи с этим к команде 'set logging'добавились два параметра:
clear_current - очистить текущий персональный лог save_current <path> - сохранить текущий персональный лог в указанный файл
Исправил непропечатывание некоторых символов в начале сообщения команды 'log'.
set #a #a + #b * %arr [ 2 #c ] // set #a(5) #a(5) + #b(8) * %arr [ 2 #c(11) ]
2.33 <br>Пункт меню "?\Log Window", переделал в кнопочку "log" на закладке "Скрипт". <br>Добавил галочку рядом с новой кнопочкой "log" на закладке "Скрипт", аналог команды 'set logging commands'. <br>Починил команду 'log open'. <br>Добавил команду 'log level [number]'.
2.34 <br>Дочинил команду 'log open'.
2.36 <br>Исправил вывод значения переменной после присваивания в команде 'set', при включенном 'set logging commands'. <br>Добавил команду очистки логов всех скриптов 'set logging clear_All'. <br>Добавил в вывод в лог миллисекунды. Включается 'set logging mode fulltime'. Выключается 'set logging mode shorttime'.
2.37 <br>Добавил несколько зарезервированных переменных: (ПОКА ТОЛЬКО ДЛЯ ЧТЕНИЯ)
'loghandle' - хэндл окна лога, либо '0', если не существует; 'logautoopen' - галочка из настроек "Автоматически открывать лог", соответственно '0' либо '1'; 'messagesoutputto' - куда выводить сообщения: 2 - ToMessageBox 4 - ToHint 8 - Dev/null если включено "ToLog", то + 1 соответственно.
2.38 <br>Исправил ошибку, возникающую при выводе в лог больших объемов информации. Выводим в лог кусками по 16 кб. В файле лога в месте соединения будет перевод строки. <br>Исправил незапланированный вывод в лог устаревшего сообщения об ошибке. <br>Исправил вывод в лог сообщений об ошибках при включенной галочке "Выводить сообщения в... Log".
2.39 <br>Исправил установку размеров в команде 'log open', при первом открытии окна лога. <br>Исправил команду 'log close', открывавшую закрытый лог.