Skip to content

Commit d9d48c6

Browse files
committed
added doc on db structure
1 parent 5fa8775 commit d9d48c6

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

doc/README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,10 @@ The InfoLogger library allows to inject messages directly from programs, as show
178178
179179
* Some example calls are available in [the source code](/test/testInfoLogger.cxx)
180180
181-
* The tags associated to a message consist of the following fields:
181+
* The tags associated to a message consist of the following fields (which may be left undefined):
182182
* Severity: the kind of message, one of: Info (default), Error, Fatal, Warning, Debug
183183
* Level: the relative visibility of the message and associated target audience to whom is addressed the message: from 1 (important, visible to all) to 99 (low-level debug message, for experts only).
184-
For ALICE Run 2, the following ranges were used to categorize messages in DAQ/ECS: operations (1-5) support (6-10) developer (11-20) debug (21-99)
184+
For ALICE Run 2, the following ranges were used to categorize messages in DAQ/ECS: operations (1-5) support (6-10) developer (11-20) debug (21-99).
185185
* Timestamp: time at which message was injected (Unix time in seconds since 1.1.1970). Precision goes to the microsecond.
186186
* Hostname: the name of the machine where the message is issued. For concision, the domain name is excluded from this tag, only the base IP host name is kept.
187187
* Rolename: the role name associated to the entity running the process. The same host might run several different roles. Example role name: FLP-TPC-1, EPN-223.
@@ -198,7 +198,7 @@ The InfoLogger library allows to inject messages directly from programs, as show
198198
* ErrorLine: the source line number from which message is injected. Useful to trace back low-level debug messages.
199199
* Message: the message content itself. Free text. Multiple-line messages are split at each end-of-line. Some characters are not allowed and replaced (\* and \#).
200200
201-
It is important to set the fields as precisely as possible, so that messages can be searched and filtered efficiently.
201+
It is important to set the fields as precisely as possible, so that messages can be searched and filtered efficiently.
202202
The initial list of fields has been taken from the Run 2 vocabulary. It may be adapted, in particular depending on the implementation and naming conventions of the control system.
203203
204204
The fields are grouped in different categories.
@@ -215,6 +215,11 @@ The InfoLogger library allows to inject messages directly from programs, as show
215215
defined.
216216
217217
Usually, one will only take care of defining the per-message messageOptions struct and a context with appropriate Facility field set, all other being set automatically.
218+
219+
* On the server side, messages are stored in a database, consisting of a single "messages" table (and possibly some archived versions of this table).
220+
The reference for the data structure is the table description itself, with one column per message tag, trivially matching the list of tags described above.
221+
Fields which are undefined appear as NULL (unless the library automatically sets a value for them).
222+
String fields usually have a maximum size (and are truncated if exceeding this limit, typically 32 characters).
218223
219224
* InfoLogger library is also available for: Tcl, Python, Go, Node.js.
220225
It allows to log message from scripting languages. A simplified subset of the InfoLogger C++ API is made available through SWIG-generated modules.

0 commit comments

Comments
 (0)