For every orchestra runtime, a json based logging for system events and process events can be activated. That basic idea is, that all of the events are captured by the event engine and written as multi line json file to the console or the file system. This is useful since tools like the elk-stack can be used to process this data and allow a structured search.
Activation
The json log is disabled per default. It can be activated Settings > Event Engine (Json Log)
| Name | Description |
|---|---|
| enabled | If set to true, all events will be written to a multi line json file. |
General settings
The general behavior of the json logging can be configured under Settings > Event Engine (Json Log). The following table describes all setting which affect process and system event logging.
| Name | Description |
|---|---|
| log.json.queue.time | The maximum time, log entries are cached before they are written to the log. If the log entries are older then this time, they are written automatically. |
| log.json.threshold | The number of log entries that are collected before they are written to the log. |
| log.json.backlog | The maximum number of write operations. If this limit is reached, orchestra disables asynchronous logging and writes entries directly until the queue is processed. |
| log.json.asynchronous.threads | Defines the number of thread which are used to write events to the log output. If -1 is set, the write access is done synchronously. If 1 is set, events are written in parallel and the order of occurance is preserved. Values greater one use more writer threads in parallel, but there is no guarantee that the event order of occurance is preserved. A sorting has to be done by the reader. |
Event logging
The behavior of the system event logging can be configured under Settings > Event Engine (Json Log)
| Name | Description |
|---|---|
| log.json.event.mode | Defines which mode has to be used to emit the log entries. If FILE is selected, the process entries are written to a separate file. If STDOUT is selected, the entries are written to the console. If LOG is selected, the output is emitted to the orchestra log file. If ALL is used, the logs are emitted over all channels. |
| log.json.event.file.pattern | Specifies the filename pattern used to derive the name of the system event log file. The following patterns are supported %g (generation), %y (year), %m (month), %d (day), %h (hour), %m (minute) |
| log.json.event.file.mode | Defines the basic strategy how files are used. If ROTATE is set, the number of files is by fileCount and file are written in a rotation manner. Otherwise, a continues number of files will be created. |
| log.json.event.file.switchAfter | Specifies how long (in minutes) log entries are written to the same file |
| log.json.event.file.fileSize | Specifies the maxmum size (in megabyte) of a log file. If the limit is reached a new log file will be created. |
| log.json.event.file.fileCount | Defines whow many log files will be written on a rolling basis. |
Process logging
The behavior of the process logging can be configured under Settings > Event Engine (Json Log)
| Name | Description |
|---|---|
| log.json.process.mode | Defines which mode has to be used to emit the log entries. If FILE is selected, the process entries are written to a separate file. If STDOUT is selected, the entries are written to the console. If LOG is selected, the output is emitted to the orchestra log file. If ALL is used, the logs are emitted over all channels. |
| log.json.process.file.pattern | Specifies the filename pattern used to derive the name of the system event log file. The following patterns are supported %g (generation), %y (year), %m (month), %d (day), %h (hour), %m (minute) |
| log.json.process.file.mode | Defines the basic strategy how files are used. If ROTATE is set, the number of files is by fileCount and file are written in a rotation manner. Otherwise, a continues number of files will be created. |
| log.json.process.file.switchAfter | Specifies how long (in minutes) log entries are written to the same file |
| log.json.process.file.fileSize | Specifies the maximum size (in megabyte) of a log file. If the limit is reached a new log file will be created. |
| log.json.process.file.fileCount | Defines how many log files will be written on a rolling basis. |