System logger
slogger2 [-p pid] [-U string] [-v[v]...]
QNX Neutrino
ARM, x86
In the second form, the primary group is the one specified for user_name in /etc/passwd.
The slogger2 daemon is the central manager of a system-logging framework that overcomes various limitations of the legacy slogger system. The primary goals for slogger2 are to:
(QNX Neutrino 6.6) You can't redirect slogger output to slogger2 in general, but if a program uses the slogger APIs, you can preload the libslog2shim.so library when you start the program, in order to redirect its logs:
LD_PRELOAD=libslog2shim.so my_program
The components of the system logger include:
Buffer Management
The central slogger2 process manages a region of shared RAM where all slog2 buffers are located. This gives slog2 the performance benefit of writing to RAM (instead of to flash or disk) without losing logs in the case of process crashes. When a process ends, its logs remain in RAM, but slogger2 removes them when it needs to reuse that memory. However, if the power source is disconnected, any log contents in RAM will be lost.
Individual slog2 instances are allocated from this memory region by slogger2 and are provided to the client process, via slog2_register(), in the form of a shared memory file in /dev/shmem/slogger2/. The libslog2 library uses shmem_open() to access each instance.
Within each slog2 instance there may be up to four buffers defined by the client process. These buffers can be any combination of 4 KB pages. The primary intent for these buffers is to enable high-rate logging into one buffer, while preserving a longer history of low-rate logging in another.
The central slogger2 process is responsible for cleaning up the slog2 instances, including calling the shmem_unlink() function to remove the shared memory file.
Severity, verbosity, and filtering
Each log line is assigned one of the following severity levels (listed here in decreasing order):
The verbosity level controls which log lines are written in the slog2 buffer; if the severity level is greater than the verbosity level, the line is written in the buffer.
Filtering controls which log items are displayed to the user; the log contents aren't affected. You could filter the log by using (for example) grep, slog2info, or a custom log viewer.