Logging

Материал из UoPilot
Перейти к навигации Перейти к поиску

Описание

Синтаксис

Привязка к окну: да.
Работа со свернутым окном: да.

set logging <text | option | mode [параметры]>

альтернативная запись

log <text | option | mode [параметры]>

<text> - текст для вывода в лог.
<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 // пишем весь лог в файл

Результат в блокноте:
20:07:55 17 (, 4): - ---------------------------------------------------------------
20:07:55 17 (, 5): - я нашел 5 яблок, а скушал 2, и у меня их осталось 3
20:07:55 17 (, 7): - удача

//Пример 2
log mode compact
log Я нашел 5 яблок.
End_script

Смотрите также

Msg
Alarm
Save_array

История развития

2.18
Добавил логи:

'set logging <option | text>'

Где option:

'on' - включить запись в лог
'off' - выключить запись в лог
'clear' - очистить лог
'save [path]' - сохранить лог в файл
'open [x y] [width height]' - открыть окно лога. по-умолчанию x=y=-1, w03, h36
'close' - закрыть окно лога

Если не распознано, то просто записывается в лог. список команд пишущих в лог пока ограничен. предлагайте что и как должно в лог писать..

2.23
Добавил возможность выводить в лог выполняющиеся строки скрипта. включается 'set logging commands', выключается 'set logging off'.
Исправил перманентный вис на конуструкции типа 'set logging clear', 'set logging open'.
Добавил возможность выводить в лог выполняющиеся строки скрипта.
Включается:

'set logging commands'

выключается:

'set logging off'

2.30
Исправил непропечатывание некоторых символов в начале сообщения команды 'set logging'.
Добавил галочку "Автоматически открывать лог" при использовании команды 'set logging text'.
Добавил команду 'log', почти аналог 'set logging'.

2.31
Команда 'set logging', указанная без параметров, выводит в лог пустую строку.
Сделал вывод в лог настраиваемым отдельно для каждого скрипта с помощью команды 'set logging mode [параметры]'. Если, при очередном вызове этой команды, какой-либо параметр не указан, то он устанавливается в значение "по-умолчанию".

   параметры:
       noTime   - не выводить в лог время
       noNumber - не выводить в лог номер скрипта
       noScript - не выводить в лог имя скрипта
       noLine   - не выводить в лог номер строки
       compact  - всё выше перечисленное
       без параметров - установить настройки "по-умолчанию" (отображать всё)

2.32
Добавил вывод в скобках значения элемента массива после его имени, для команды 'set logging commands'.
Добавил вывод значения переменной после присваивания в команде 'set', при включенном 'set logging commands'. Выводится отдельной строкой.

Добавил логи для каждого скрипта отдельно. По достижении 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
Пункт меню "?\Log Window", переделал в кнопочку "log" на закладке "Скрипт".
Добавил галочку рядом с новой кнопочкой "log" на закладке "Скрипт", аналог команды 'set logging commands'.
Починил команду 'log open'.
Добавил команду 'log level [number]'.

2.34
Дочинил команду 'log open'.

2.36
Исправил вывод значения переменной после присваивания в команде 'set', при включенном 'set logging commands'.
Добавил команду очистки логов всех скриптов 'set logging clear_All'.
Добавил в вывод в лог миллисекунды. Включается 'set logging mode fulltime'. Выключается 'set logging mode shorttime'.

2.37
Добавил несколько зарезервированных переменных: (ПОКА ТОЛЬКО ДЛЯ ЧТЕНИЯ)

'loghandle' - хэндл окна лога, либо '0', если не существует;
'logautoopen' - галочка из настроек "Автоматически открывать лог", соответственно '0' либо '1';
'messagesoutputto' - куда выводить сообщения:
    2 - ToMessageBox
    4 - ToHint
    8 - Dev/null
     если включено "ToLog", то + 1 соответственно.

2.38
Исправил ошибку, возникающую при выводе в лог больших объемов информации. Выводим в лог кусками по 16 кб. В файле лога в месте соединения будет перевод строки.
Исправил незапланированный вывод в лог устаревшего сообщения об ошибке.
Исправил вывод в лог сообщений об ошибках при включенной галочке "Выводить сообщения в... Log".

2.39
Исправил установку размеров в команде 'log open', при первом открытии окна лога.
Исправил команду 'log close', открывавшую закрытый лог.