The Issues - art-daq/artdaq GitHub Wiki

{{toc}}

The Issues associated with Message Logging and TRACEing

Consistent Message format

There most likely should be. Should single line message (without an “end of message” indication) be allowed?

Log Message Destination(s)

cout/cerr vs. log file

Some libraries write “log messages” (error, warning, etc.) to cerr. To have these message and
mf message go to the same destination, we could configure message facility to use cout/cerr and
then redirect those streams to a file. Note: unix allows the process to redirect it’s own streams.

Message rate (fast vs. slow) vs. Long term archival vs. Short Term Overwrite

Writing messages to log files — at some rate there will eventually be back pressure.
Messages can be dropped to postpone or eliminate the backpressure. Should that be viewed as an indication that the application is
logging (to files) too many messages and that the logging needs to be adjusted?
One message destination may not be appropriate. Many people may not think that there
is more than one or they might only ever want to look in one place. When debugging, it
may happen that an excessively large volume of message are written to a log file, which
in addition to creating large unwieldy files, can adversely effect performance. These issues
are mitigated by directing debug logging to a circular memory buffer.

How important is the mf’s message rate limiting feature?

combined destination

One file with messages from multiple nodes.

Precision (more vs. less) (where’s the line?)

What time resolution is needed? Seconds? Milliseconds? Microseconds?
If microseconds are needed, how likely would it be to need CPU and thread (tid) information?

Verbosity - when all is well vs. when there is a problem

There are many details which are not needed when all is well. When there are problems, should the
messaging be able to show interactions with other programs and/or the OS? Should the details be selectable?
Without recompiling?

Initial Debugging - the tendency to use the wrong destination

“Success/Info” logging should go to an obvious location. If a system issue comes up and more info (logging)
needs to be added, should newly added log messages (“debug information”) be directed to the “Success/Info” (obvious) location?
If TLOG_{DEBUG,TRACE,ARB) messages are added, these message and be run-time/dynamically directed to the “Success/Info” location.

At the Limits of Rate

In a relative sense, computers are good at binary calculations and data movement and they are not
as good at converting numbers (especially floating point)