Keys in the ODB /Logger/Channels subtree: Difference between revisions

From MidasWiki
Jump to navigation Jump to search
No edit summary
(The midas documentation has moved to https://midas.triumf.ca/docs/)
Tag: Replaced
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
==== Links ====
The midas documentation has moved. See [https://midas.triumf.ca/docs/develop/reference/reference/odb_keys/#loggerchannels /Logger/Channels] on the ODB keys page and [https://midas.triumf.ca/docs/develop/features/storing_data/data_logging/midas_files/ Data logging: midas files] for the new documentation about the /Logger/Channels ODB keys.
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* [[Keys in the ODB /Logger tree| /Logger tree]]
* [[Keys in the ODB /Logger/SQL subtree |/Logger/SQL subtree]]
* [[/Logger ODB tree #Example | Example /Logger tree]]
* [[mlogger]]
</div>
 
 
== <span style="color: purple;">''/Logger/Channels''</span> subtree ==
 
The ODB <span style="color: purple;">''/Logger/Channels''</span>  subtree is a subdirectory of the [[Keys in the ODB /Logger tree | ODB /Logger tree]], created
when the MIDAS logger utility [[mlogger]] is started for the first time. The keys will be filled with default values which users may change as required to customize their experiments.
 
By default, only '''one''' logging channel with the value 0  if defined (i.e. Logging Channel 0). [[#Multiple Logging Channels | Multiple logging channels]] may be defined by the user.
 
<br>
-----
<br>
 
== Multiple Logging Channels ==
 
By default, only one logging channel is created (Logging Channel 0). To create multiple logging channels, an existing Channel subtree can be copied.
 
e.g. to create a second logging channel (Channel 1) using [[odbedit]]
 
[local]cd /Logger
[loca]]logger>cd channels
[local]Channels>ls
0
[local]Channels>copy 0 1
[local]Channels>ls
0
1
 
If more than one logging channel is defined, there will be a multiple subtrees
* <span style="color: purple;">''/Logger/Channels/0/''</span>,
* <span style="color: purple;">''/Logger/Channels/1/''</span>,
* <span style="color: purple;">''...</span>
present, each with a
<span style="color: purple;">''Settings''</span>  and <span style="color: purple;">''Statistics''</span>  subtree.
 
Thus '''the parameters for each logging channel can be set individually.'''
 
To send different events to different logging channels, they may be selected by [[#/Logger/Channels/0/Settings/Event ID | Event ID key]] or
[[#/Logger/Channels/0/Settings/Trigger mask | Trigger mask key]].
 
<br>
-----
<br>
 
== <span style="color: purple;">''/Logger/Channels/<logging-channel-number>/Settings''</span> subtree ==
 
The keys in the ODB <span style="color: purple;">''/Logger/Channels/<logging-channel-number>/Settings''</span> subtree are shown below
for the default logging channel 0.
 
For a single logging channel 0, one subtree
* <span style="color: purple;">''/Logger/Channels/0/Settings''</span>
will be present.
 
 
If [[#Multiple Logging Channels | multiple logging channels]] are defined, each
will contain its own ODB <span style="color: purple;">''Settings''</span>  subtree,
 
i.e.
* <span style="color: purple;">''/Logger/Channels/0/Settings''</span>
* <span style="color: purple;">''/Logger/Channels/1/Settings''</span>
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Active''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "y"
</div>
 
If this ODB key is to "y", this logging channel is active. Data are only logged from channels that are active.
Set to "n" to disable data logging from this channel.
 
'''Note''' that for data to be logged from any active logging channel, the  [[Keys in the ODB /Logger tree #/Logger/Write data |/Logger/Write data key]]
must '''also'''  be set to "y".
 
<br>
--------------
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Type''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  "Disk"
</div>
 
This ODB key specifies the type of media on which the logging should take place. It can be "Disk", "Tape" or "FTP" (see [[#/Logger/Channels/0/Settings/Filename |Filename key]]).
 
<br>
----------
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Filename''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  "run%05d.mid"
</div>
 
; For '''disk''' logging : ODB key <span style="color: purple;">''Filename''</span> specifies the name of a file to contain the data. Default value is "run%05d.mid" where "%05d" is replaced by the current run number in the same way as described for the ODB key [[Keys in the ODB /Logger tree #/Logger/Dump File |/Logger/Dump File]]. If subruns are enabled, the filename may be of the form "run%05d_%02d.mid". See [[subruns]] for details.
; : The key <span style="color: purple;">''Filename''</span> may contain a directory string in addition to a filename, so that different logging channels may have their data logged into specific directories. If the key does NOT also contain a directory string, the directory given in the key [[Keys in the ODB /Logger tree #/Logger/Data dir|/Logger/Data dir key]] will be used. The  contents of the key <span style="color: purple;">''Filename''</span> must match that of the [[#/Logger/Channels/0/Settings/Format |Format key]].
 
;For '''tape''' logging : key <span style="color: purple;">''Filename''</span> specifies a tape device i.e.
<ul>
      <li>  /dev/nrmt0 or /dev/nst0 under UNIX or </li>
      <li>  \\.\tape0 under Windows NT. </li>
</ul>
<div style="background-color:mistyrose">WARNING: tape logging is no longer maintained</div>
 
; FTP mode :  the data is written directly to a remote computer via FTP. Key <span style="color: purple;">''Filename''</span> specifies the access information for the FTP server. It has the following format:
 
  <host name>, <port number>, <user name>, <password>, <directory>, <file name>
 
: for example
 
  myhost.my.domain,21,john,password,/usr/users/data,run%05d.mid
 
The normal FTP port number is 21, or 1021 for a Unitree Archive like the one used at the Paul Scherrer Institute.
 
By using the FTP mode, a back-end computer can write directly to the archive.
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Format''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  "MIDAS"
</div>
 
This ODB key specifies the format to be used for writing the data to the logging channel. It can take one of four values: MIDAS, ROOT, ASCII and DUMP.
 
For disk logging, the extension for the Filename Key above must match one of the following:
<ul>
<li> .mid for MIDAS (or .mid.gz - see [[#/Logger/Channels/0/Settings/Compression | Compression key]])</li>
<li> .root for ROOT</li>
<li> .asc for ASCII</li>
<li> .txt for DUMP</li>
</ul>
 
For [[ROOT]] format the data logger will automatically convert the format specified in the [[frontend]] equipment list to ROOT format (see format for details). The ASCII format converts events into readable text format which can be easily analyzed by programs that have problems reading binary data. While the ASCII format tries to minimize the file size by printing one event per line, the DUMP format gives a very detailed ASCII representation of the event including bank information, serial numbers etc., so it should be used mainly for diagnostics.
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Compression''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
 
The ODB key <span style="color: purple;">''Compression''</span> defines the Compression Level of the data. If set to 0, compression is turned off. If set > 0, the data files are compressed before being written. In this case,
 
*  the file extension ".gz" must be appended to the [[#/Logger/Channels/0/Settings/Filename |Filename key]] (see also  [[#/Logger/Channels/0/Settings/Format |Format key]])
*  and ZLIB support must be compiled into the MIDAS package (see [[NEED_ZLIB]] ).
 
This feature applies only to files saved onto disk in MIDAS format. ROOT format is already compressed.
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/ODB Dump''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "y"
</div>
 
 
If this ODB key is set to "y", a complete dump of the ODB is performed to this logging channel before and after every run. The ODB content is dumped in one long ASCII string reflecting the status at begin-of-run event and at end-of-run event. These special events have an ID of [[EVENTID_BOR]] and [[EVENTID_EOR]] and a serial number equal to the current run number, and are not visible using the [[mdump]] utility. An analyzer in the off-line analysis stage can use these special events to restore the ODB to its online state. The dump of the ODB into the event stream for this logger channel is independent of the [[Keys in the ODB /Logger tree #/Logger/ODB Dump  |/Logger/ODB Dump key]], which is used to dump the ODB to an ASCII or XML file on disk.
 
<br>
-----
<br>
 
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Log messages''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DWORD
* '''Default:''' 0
</div>
 
This ODB key is a bit-field for logging system messages as message events along with the event data from the experiment.
If a bit in this field is set, the respective system message is written to the logging channel as a message event with an ID of [[EVENTID_MESSAGE]] (0x8002). The bits are 1 for error, 2 for info, 4 for debug, 8 for user, 16 for log, 32 for talk, 64 for call messages and 255 to log all messages. For an explanation of these messages refer to [[Buffer Manager]] ,
[[#/Logger/Channels/0/Settings/Event ID | Event ID key]] and
[[#/Logger/Channels/0/Settings/Trigger mask | Trigger mask key]].
 
 
<br>
-----
<br>
 
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Buffer''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:''' "SYSTEM"
</div>
 
 
This ODB key specifies the buffer where the logger will find the event. It is usually set to "SYSTEM" and is specified in the equipment list for this event.
 
<br>
-----
<br>
 
<div id="EventFiltering"></div>
<div id="EventID"></div>
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Event ID ''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' -1
</div>
 
 
This ODB key contains the ID of the event(s) to be logged (see [[MIDAS Event Structure|EventID]]). It is specified in the [[Equipment List Parameters#EventID|Equipment List]] for this event.
 
To log events with any ID, <span style="color: purple; font-style:italic;">Event ID</span> is set to -1 (EVENTID_ALL).  <span style="color: purple; font-style:italic;">Event ID</span> key and/or [[#/Logger/Channels/0/Settings/Trigger mask | Trigger mask ]] key may be used to select events to be sent to different logging channels, or as an [[Event Filtering]] system.
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Trigger mask''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' -1
</div>
 
This ODB key specifies which events to log based on the [[MIDAS Event Structure|Trigger Mask]] of the event. It is specified in the [[Equipment List Parameters#TriggerMask|Equipment List]] of this event.  
 
For a logging channel to receive all events, -1 is used for both the
[[#/Logger/Channels/0/Settings/Event ID | Event ID key]]
and the <span style="color: purple;">''Trigger mask''</span> key .
 
Either the <span style="color: purple; font-style:italic;">Trigger Mask</span> or  <span style="color: purple; font-style:italic;">Event ID</span> key may be used to select events to be sent to particular logging channels, or for [[Event Filtering]].
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Event limit''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:''' 0
</div>
 
 
The ODB key <span style="color: purple; font-style:italic;">Event limit</span> value can be used to stop a run when set to a non-zero value. The statistics value [[#/Logger/Channels/0/Statistics/Events written|Events written]] is checked against the <span style="color: purple; font-style:italic;">Event limit</span> value. When this condition is reached, the run is stopped automatically by the data logger [[Mlogger|mlogger]]. The next run can then be started automatically if desired (see [[Keys in the ODB /Logger tree #/Logger/Auto restart|Auto restart]]).
 
<br>
-----
<br>
 
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Byte limit''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:''' 0
</div>
 
The ODB key <span style="color: purple; font-style:italic;">Byte limit</span> value can be used to stop a run when set non-zero. The statistics value [[#/Logger/Channels/0/Statistics/Bytes written|Bytes written]] is checked against the <span style="color: purple; font-style:italic;">Byte limit</span> value. When this conditions is reached, the run is stopped automatically by the data logger [[Mlogger|mlogger]]. The next run can then be started automatically if desired (see [[Keys in the ODB /Logger tree #/Logger/Auto restart|Auto restart]]). ).
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Subrun Byte limit''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:''' 0
</div>
 
 
The  ODB key <span style="color: purple; font-style:italic;">Subrun Byte limit</span> value can be used to stop a [[subruns|subrun]] when set non-zero. When this condition is reached, the run is stopped automatically by the data logger ([[mlogger]]). The next run can then be started automatically if desired (see [[Keys in the ODB /Logger tree #/Logger/Auto restart |Auto restart]]).
 
<br>
-----
<br>
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Tape capacity''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:''' 0
</div>
 
The ODB key <span style="color: purple; font-style:italic;">Tape capacity</span> value can be used to stop a run when set to non-zero. The value in the key [[#/Logger/Channels/0/Statistics/Bytes written total|Bytes written total]] is checked against the limit set by <span style="color: purple; font-style:italic;">Tape capacity</span>. When this condition is reached, the run is stopped automatically by the data logger.
<div style="background-color:mistyrose;">Warning: writing directly to tape is not maintained</div>
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Subdir format''</span> ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''
</div>
 
 
This ODB key optionally specifies a subdirectory, which is appended to the directory string in the key  [[Keys in the ODB /Logger/Channels tree #/Logger/Channels/0/Settings/Filename | Filename]].
 
It is used to place the data log file into a date-stamped subdirectory. This is useful where a large numbers of data files are produced, or experiments are active for a long time, and it is desirable to store the data in sub-directories according to their date. This can be done automatically using the <span style="color: purple; font-style:italic;">Subdir format</span> key.
 
If the  <span style="color: purple;">''Subdir format''</span> key is not empty, the data log file will be placed in a subdirectory. The name of this subdirectory is composed by the given <span style="color: purple;">''Subdir format''</span>  string. Its format follows the definition of the system call strftime() . (See man strftime). Ordinary characters placed in the format string are copied to the output character array "s" without conversion. Conversion specifiers are introduced by a '%' character, and are replaced in "s" as follows for the most common ones:
 
*    %Y : Year (ex: 2002)
*    %y : Year (range:00..99)
*    %m : Month (range: 01..12)
*    %d : Day (range: 00..31)
 
The other characters are: %a, %A, %b, %B, %c, %C, %d, %D, %e, %E, %G, %g, %h, %H, %I, %j, %k, %l, %m, %M, %n, %O, %p, %P, %r, %R, %s, %S, %t, %T, %u, %U, %V, %w, %W, %x, %X, %y, %Y, %z, %Z, %+. (See man strftime for explanation).
 
<br>
-----
<br>
 
 
=== <span style="color: purple;">''/Logger/Channels/0/Settings/Current filename''</span> ===
 
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''
</div>
 
This ODB key will reflect the full path of the current saved data file.
 
<br>
-----
<br>
<br>
 
== <span style="color: purple;">''/Logger/Channels/0/Statistics''</span> subtree ==
The keys in the ODB <span style="color: purple;">''/Logger/Channels/<logging-channel-number>/Settings''</span> subtree are shown below
for the default logging channel 0.
 
For a single logging channel 0, one ODB subtree
* <span style="color: purple;">''/Logger/Channels/0/Settings''</span>
will be present.
 
 
If [[#Multiple Logging Channels | multiple logging channels]] are defined, each
will contain its own ODB <span style="color: purple;">''Settings''</span>  subtree,
 
i.e.
* <span style="color: purple;">''/Logger/Channels/0/Settings''</span>
* <span style="color: purple;">''/Logger/Channels/1/Settings''</span>
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Statistics/Events written''</span> ===
 
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:'''  0
</div>
 
This ODB key contains the number of events written. Cleared at begin-of-run. <span style="color: purple;">''Events written''</span>  statistics are used to determine when to stop a run automatically by checking against the [[#/Logger/Channels/0/Settings/Event limit|Event limit key]].
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Statistics/Bytes written''</span> ===
 
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:'''  0
</div>
 
 
This ODB key contains the number of bytes written. Cleared at begin-of-run. <span style="color: purple;">''Bytes written''</span> statistics are used to determine when to stop a run automatically by checking against the [[#/Logger/Channels/0/Settings/Byte limit|Byte limit]] key.
 
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Statistics/Bytes written uncompressed''</span> ===
 
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:'''  0
</div>
 
If [[#/Logger/Channels/0/Settings/Compression |Compression]] level is 0 (i.e. data not compressed), the values of the ODB key
 
<span style="color: purple;">''Bytes written uncompressed''</span> and [[#/Logger/Channels/0/Settings/Bytes written|Bytes written]] will be identical.
 
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Statistics/Bytes written total''</span> ===
 
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:'''  0
</div>
 
 
This ODB key contains the total number of bytes written. Cleared only when a tape is rewound with the [[odbedit]] command ''rewind''. The <span style="color: purple;">''Bytes written total''</span> entry can therefore be used as an indicator of when a tape is full by checking against the limit [[#/Logger/Channels/0/Settings/Tape Capacity|Tape Capacity]].
<div style="background-color:mistyrose;">Warning: writing directly to tape is not maintained</div>
 
<br>
-----
<br>
 
=== <span style="color: purple;">''/Logger/Channels/0/Statistics/Files written''</span> ===
 
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
 
This ODB key contains the number of files written. Cleared only when a tape is rewound with the [[odbedit]] command ''rewind''. <span style="color: purple;">''Files written''</span> value can be used off-line to determine how many files on a tape have to be skipped in order to reach a specific run.
<div style="background-color:mistyrose;">Warning: writing directly to tape is not maintained</div>

Latest revision as of 22:00, 30 October 2026

The midas documentation has moved. See /Logger/Channels on the ODB keys page and Data logging: midas files for the new documentation about the /Logger/Channels ODB keys.