1.9 KiB
Logging
Warning
This document only describes the library user control interface, which doesn't cover the actual logging, aimed at library developers.
For debugging purposes, libcasio has a debugging interface that
allows displaying messages in the debug stream (usually
stderr
) with four different levels (plus a special
one):
info
-
Debug information.
warn
-
Warnings.
error
-
Non-fatal errors.
fatal
-
Fatal errors.
none
-
Special log level not to print messages.
Each level includes the message from the levels below in the list.
The log level used to be hardcoded into the library (with the
configure script), but it appeared that some users wanted to be able to
control it from the utilities using the library (with a
--log
option).
This interface is declared in <libcasio/log.h>
.
For forward compatibility purposes, it works with strings.
Set the log level using its name. Setting a log level unknown to the library will result in setting the log level to
none
.
Get a pointer to the current log level (which you shall not free).
Before setting the log level, you should list the recognized log levels. It is recommended to iterate on them using the following functions for this:
Get a log level iterator.
Get the next log level on the iterator.
An example log level listing is the following:
#include <stdio.h>
#include <stdlib.h>
#include <libcasio.h>
void callback(void *cookie, const char *str)
{
(void)cookie; /* no, cookie, we don't want to use you */
("- %s\n", str);
printf}
int main(void)
{
("Available log levels:\n");
printf(&callback, NULL);
casio_listlogreturn (0);
}