Logging: различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: « == Описание == == Синтаксис == Привязка к окну: да. <br>Работа со свернутым окном: да. set logging...»)
 
 
Строка 5: Строка 5:
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: да.
 
Привязка к окну: да.
&lt;br>Работа со свернутым окном: да.
+
<br>Работа со свернутым окном: да.
  set logging &lt;text | option | mode [параметры]>
+
  set logging <text | option | mode [параметры]>
 
альтернативная запись
 
альтернативная запись
  log &lt;text | option | mode [параметры]>
+
  log <text | option | mode [параметры]>
'''&lt;text>''' - текст для вывода в лог.
+
'''<text>''' - текст для вывода в лог.
&lt;br>'''&lt;option>''' - зарезервированные строки, которые выполняют операции с логом:
+
<br>'''<option>''' - зарезервированные строки, которые выполняют операции с логом:
 
:'''on''' - включить запись в лог
 
:'''on''' - включить запись в лог
 
:'''off''' - выключить запись в лог
 
:'''off''' - выключить запись в лог
Строка 19: Строка 19:
 
:'''commands''' - отображение в лог выполняющихся строк скрипта. Включается 'set logging commands', выключается 'set logging off'.
 
:'''commands''' - отображение в лог выполняющихся строк скрипта. Включается 'set logging commands', выключается 'set logging off'.
  
'''&lt;mode>''' - установка формата вывода в лог. Параметры:
+
'''<mode>''' - установка формата вывода в лог. Параметры:
 
:'''noTime'''  - не выводить в лог время
 
:'''noTime'''  - не выводить в лог время
 
:'''noNumber''' - не выводить в лог номер скрипта
 
:'''noNumber''' - не выводить в лог номер скрипта
Строка 28: Строка 28:
 
  log mode [параметры]
 
  log mode [параметры]
  
Указывается либо &lt;option> либо &lt;text> либо &lt;mode>, но не несколько одновременно.
+
Указывается либо <option> либо <text> либо <mode>, но не несколько одновременно.
  
 
== Примеры ==
 
== Примеры ==
Строка 51: Строка 51:
 
   set logging save c:\logs\apple.txt // пишем весь лог в файл
 
   set logging save c:\logs\apple.txt // пишем весь лог в файл
 
Результат в блокноте:
 
Результат в блокноте:
&lt;br>20:07:55 17 (, 4):  - ---------------------------------------------------------------
+
<br>20:07:55 17 (, 4):  - ---------------------------------------------------------------
&lt;br>20:07:55 17 (, 5):  - я нашел 5 яблок, а скушал 2, и у меня их осталось 3
+
<br>20:07:55 17 (, 5):  - я нашел 5 яблок, а скушал 2, и у меня их осталось 3
&lt;br>20:07:55 17 (, 7):  - удача
+
<br>20:07:55 17 (, 7):  - удача
  
 
  //Пример 2
 
  //Пример 2
Строка 63: Строка 63:
  
 
[[Msg]]
 
[[Msg]]
&lt;br>[[Alarm]]
+
<br>[[Alarm]]
&lt;br>[[Save_array]]
+
<br>[[Save_array]]
  
 
== История развития ==
 
== История развития ==
 
'''2.18'''
 
'''2.18'''
&lt;br>Добавил логи:
+
<br>Добавил логи:
  'set logging &lt;option | text>'
+
  'set logging <option | text>'
 
Где option:
 
Где option:
 
:'on' - включить запись в лог
 
:'on' - включить запись в лог
Строка 80: Строка 80:
  
 
'''2.23'''
 
'''2.23'''
&lt;br>Добавил возможность выводить в лог выполняющиеся строки скрипта. включается 'set logging commands', выключается 'set logging off'.
+
<br>Добавил возможность выводить в лог выполняющиеся строки скрипта. включается 'set logging commands', выключается 'set logging off'.
&lt;br>Исправил перманентный вис на конуструкции типа 'set logging clear', 'set logging open'.
+
<br>Исправил перманентный вис на конуструкции типа 'set logging clear', 'set logging open'.
&lt;br>Добавил возможность выводить в лог выполняющиеся строки скрипта.
+
<br>Добавил возможность выводить в лог выполняющиеся строки скрипта.
&lt;br>Включается:
+
<br>Включается:
 
  'set logging commands'
 
  'set logging commands'
 
выключается:
 
выключается:
Строка 89: Строка 89:
  
 
'''2.30'''
 
'''2.30'''
&lt;br>Исправил непропечатывание некоторых символов в начале сообщения команды 'set logging'.
+
<br>Исправил непропечатывание некоторых символов в начале сообщения команды 'set logging'.
&lt;br>Добавил галочку "Автоматически открывать лог" при использовании команды 'set logging text'.
+
<br>Добавил галочку "Автоматически открывать лог" при использовании команды 'set logging text'.
&lt;br>Добавил команду 'log', почти аналог 'set logging'.
+
<br>Добавил команду 'log', почти аналог 'set logging'.
  
 
'''2.31'''
 
'''2.31'''
&lt;br>Команда 'set logging', указанная без параметров, выводит в лог пустую строку.
+
<br>Команда 'set logging', указанная без параметров, выводит в лог пустую строку.
&lt;br>Сделал вывод в лог настраиваемым отдельно для каждого скрипта с помощью команды 'set logging mode [параметры]'. Если, при очередном вызове этой команды, какой-либо параметр не указан, то он устанавливается в значение "по-умолчанию".
+
<br>Сделал вывод в лог настраиваемым отдельно для каждого скрипта с помощью команды 'set logging mode [параметры]'. Если, при очередном вызове этой команды, какой-либо параметр не указан, то он устанавливается в значение "по-умолчанию".
 
     параметры:
 
     параметры:
 
         noTime  - не выводить в лог время
 
         noTime  - не выводить в лог время
Строка 105: Строка 105:
  
 
'''2.32'''
 
'''2.32'''
&lt;br>Добавил вывод в скобках значения элемента массива после его имени, для команды 'set logging commands'.
+
<br>Добавил вывод в скобках значения элемента массива после его имени, для команды 'set logging commands'.
&lt;br>Добавил вывод значения переменной после присваивания в команде 'set', при включенном 'set logging commands'. Выводится отдельной строкой.
+
<br>Добавил вывод значения переменной после присваивания в команде 'set', при включенном 'set logging commands'. Выводится отдельной строкой.
&lt;br>&lt;br>Добавил логи для каждого скрипта отдельно. По достижении 1000 строк, обрезается до 500. Переключаются при переключении закладок скрипта (при активном главном логе 'M', переключения не происходит), или непосредственно в окне лога.
+
<br><br>Добавил логи для каждого скрипта отдельно. По достижении 1000 строк, обрезается до 500. Переключаются при переключении закладок скрипта (при активном главном логе 'M', переключения не происходит), или непосредственно в окне лога.
 
В связи с этим к команде 'set logging'добавились два параметра:
 
В связи с этим к команде 'set logging'добавились два параметра:
 
     clear_current - очистить текущий персональный лог
 
     clear_current - очистить текущий персональный лог
     save_current &lt;path> - сохранить текущий персональный лог в указанный файл
+
     save_current <path> - сохранить текущий персональный лог в указанный файл
 
Исправил непропечатывание некоторых символов в начале сообщения команды 'log'.
 
Исправил непропечатывание некоторых символов в начале сообщения команды 'log'.
 
  set #a #a + #b * %arr [ 2 #c ] //  set #a(5) #a(5) + #b(8) * %arr [ 2 #c(11) ]
 
  set #a #a + #b * %arr [ 2 #c ] //  set #a(5) #a(5) + #b(8) * %arr [ 2 #c(11) ]
  
 
'''2.33'''
 
'''2.33'''
&lt;br>Пункт меню "?\Log Window", переделал в кнопочку "log" на закладке "Скрипт".
+
<br>Пункт меню "?\Log Window", переделал в кнопочку "log" на закладке "Скрипт".
&lt;br>Добавил галочку рядом с новой кнопочкой "log" на закладке "Скрипт", аналог команды 'set logging commands'.
+
<br>Добавил галочку рядом с новой кнопочкой "log" на закладке "Скрипт", аналог команды 'set logging commands'.
&lt;br>Починил команду 'log open'.
+
<br>Починил команду 'log open'.
&lt;br>Добавил команду 'log level [number]'.
+
<br>Добавил команду 'log level [number]'.
  
 
'''2.34'''
 
'''2.34'''
&lt;br>Дочинил команду 'log open'.
+
<br>Дочинил команду 'log open'.
  
 
'''2.36'''
 
'''2.36'''
&lt;br>Исправил вывод значения переменной после присваивания в команде 'set', при включенном 'set logging commands'.
+
<br>Исправил вывод значения переменной после присваивания в команде 'set', при включенном 'set logging commands'.
&lt;br>Добавил команду очистки логов всех скриптов 'set logging clear_All'.  
+
<br>Добавил команду очистки логов всех скриптов 'set logging clear_All'.  
&lt;br>Добавил в вывод в лог миллисекунды. Включается 'set logging mode fulltime'. Выключается 'set logging mode shorttime'.
+
<br>Добавил в вывод в лог миллисекунды. Включается 'set logging mode fulltime'. Выключается 'set logging mode shorttime'.
  
 
'''2.37'''
 
'''2.37'''
&lt;br>Добавил несколько зарезервированных переменных: (ПОКА ТОЛЬКО ДЛЯ ЧТЕНИЯ)  
+
<br>Добавил несколько зарезервированных переменных: (ПОКА ТОЛЬКО ДЛЯ ЧТЕНИЯ)  
 
  'loghandle' - хэндл окна лога, либо '0', если не существует;
 
  'loghandle' - хэндл окна лога, либо '0', если не существует;
 
  'logautoopen' - галочка из настроек "Автоматически открывать лог", соответственно '0' либо '1';
 
  'logautoopen' - галочка из настроек "Автоматически открывать лог", соответственно '0' либо '1';
Строка 139: Строка 139:
  
 
'''2.38'''
 
'''2.38'''
&lt;br>Исправил ошибку, возникающую при выводе в лог больших объемов информации. Выводим в лог кусками по 16 кб. В файле лога в месте соединения будет перевод строки.
+
<br>Исправил ошибку, возникающую при выводе в лог больших объемов информации. Выводим в лог кусками по 16 кб. В файле лога в месте соединения будет перевод строки.
&lt;br>Исправил незапланированный вывод в лог устаревшего сообщения об ошибке.
+
<br>Исправил незапланированный вывод в лог устаревшего сообщения об ошибке.
&lt;br>Исправил вывод в лог сообщений об ошибках при включенной галочке "Выводить сообщения в... Log".
+
<br>Исправил вывод в лог сообщений об ошибках при включенной галочке "Выводить сообщения в... Log".
  
 
'''2.39'''
 
'''2.39'''
&lt;br>Исправил установку размеров в команде 'log open', при первом открытии окна лога.
+
<br>Исправил установку размеров в команде 'log open', при первом открытии окна лога.
&lt;br>Исправил команду 'log close', открывавшую закрытый лог.
+
<br>Исправил команду 'log close', открывавшую закрытый лог.
  
 
[[Категория:Оповещение]]
 
[[Категория:Оповещение]]

Текущая версия на 10:50, 28 августа 2019

Описание

Синтаксис

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

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', открывавшую закрытый лог.