I'm writing an application in C. I want to split everything up into various functions so that `main()` essentially just calls a few functions. Now it would be nice if these functions would be reusable, so that another application (for example an add-on) could use these. But these functions are logging what they are doing, because the main application is designed to interact with a user - the add-on programs don't neccessarily have to interact with users, and as such don't have to do logging.

So, programs that want to use some of my functions do not only depend on the functions itself, but also on the logging function. This is even worse if the program doesn't want to do any logging. How would I solve this?