Logging

Материал из UoPilot
Версия от 21:09, 27 августа 2019; Tatikoma (обсуждение | вклад) (Новая страница: « == Описание == == Синтаксис == Привязка к окну: да. <br>Работа со свернутым окном: да. set 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', открывавшую закрытый лог.