Bläddra i källkod

docs: Documentation for the 'LOG' element.

Serj Kalichev 6 månader sedan
förälder
incheckning
fabe28b3ab
2 ändrade filer med 92 tillägg och 1 borttagningar
  1. 45 1
      docs/klish3.en.md
  2. 47 0
      docs/klish3.ru.md

+ 45 - 1
docs/klish3.en.md

@@ -2112,7 +2112,51 @@ If the `/tmp/cond_file` file exists, the "cmd1" command is available to the oper
 if it does not exist, the command is hidden.
 
 
-## klish plugin ##
+### LOG
+
+The `LOG` element defines way and scope to log client commands. The
+[`ACTION`](#action) resides inside `LOG` and specifies the logging code. These
+actions will be executed after client command finishing. The client command
+return code is available for the logging code.
+
+The `LOG` element can be specified inside the following elements:
+[`KLISH`](#klish) (global space), [`VIEW`](#view), [`COMMAND`](#command). The
+engine will use the closest `LOG` element for the logging. It means if `LOG` is
+defined inside `COMMAND` tag then this element will be selected for logging. If
+`COMMAND` has no nested `LOG` element then engine will search for `LOG` up
+through the hierarchy. I.e. it will search in `VIEW` (which the command is
+defined in) and then in global space.
+
+The `LOG` element is not mandatory. The one hierarchy level can't contain more
+than one `LOG` element.
+
+The flexibility and positioning of `LOG` elements allow to log different
+commands or command groups using different mechanisms.
+
+
+#### Examples
+
+```
+<LOG>
+  <ACTION sym="syslog"/>
+</LOG>
+
+<VIEW name="main">
+
+  <COMMAND name="cmd1" help="Command 1">
+    <ACTION sym="script">
+    ls
+    </ACTION>
+  </COMMAND>
+
+</VIEW>
+```
+
+The fact of "cmd1" command execution will be logged to the syslog. The `syslog`
+symbol is defined inside standard "klish" plugin.
+
+
+## The "klish" plugin
 
 The klish source tree includes the code for the standard "klish" plugin.
 The plugin contains basic data types, navigation command and other auxiliary data types

+ 47 - 0
docs/klish3.ru.md

@@ -2140,6 +2140,53 @@ SEQ сам может быть элементом контейнера SWITCH.
 если не существует, то команда скрыта.
 
 
+### LOG
+
+С помощью элемента `LOG` задаётся способ и область журналирования. Внутри
+элемента `LOG` указываются действия [`ACTION`](#action), которые будут запущены
+после завершения пользовательской команды. Для этих действий доступен код
+завершения команды. Как именно реализовано журналирование определяется кодом
+`ACTION` элемента `LOG`.
+
+Сам элемент `LOG` может встречаться внутри элементов [`KLISH`](#klish) (т.е. в
+глобальном пространстве), [`VIEW`](#view), [`COMMAND`](#command). При
+выполнении команды будет использован ближайший к определению команды элемент
+`LOG`. Это означает, что если `LOG` определён внутри элемента `COMMAND`, то
+будет выбран именно он. Если же внутри команды элемент `LOG` не определён, то
+поиск пойдёт вверх по иерархии. Т.е. сначала будет производиться в элементе
+`VIEW`, внутри которого объявлена команда, а если и там `LOG` не найден, то в
+глобальном пространстве.
+
+Отсутствие элемента `LOG` в файле конфигурации не является ошибкой. В этом
+случай журналирование просто не будет производиться. На одном уровне иерархии
+нельзя определять более одного элемента `LOG`.
+
+Гибкость элемента `LOG` и возможности его размещения позволяют производить
+журналирование различными способами для разных команд или групп команд.
+
+
+#### Примеры
+
+```
+<LOG>
+  <ACTION sym="syslog"/>
+</LOG>
+
+<VIEW name="main">
+
+  <COMMAND name="cmd1" help="Command 1">
+    <ACTION sym="script">
+    ls
+    </ACTION>
+  </COMMAND>
+
+</VIEW>
+```
+
+Факт выполнения команды "cmd1" будет записан в syslog. Символ `syslog`
+определён в стандартном плагине "klish".
+
+
 ## Плагин "klish"
 
 В состав дерева исходных кодов klish входит код стандартного плагина "klish".