This enables the compiler to check the arguments against a printf style format string in all calls to the logging functions.
Most of them appear in the disclaimers, but some are in the code as well.
With the application defined logging function, the actual logging is not performed by the library anymore, and the code belongs in the applications.