Several different logging systems exist with different advantages and dependencies. E.g. log4cxx heavily relies on APR which is a huge dependency to build i.e. for embedded systems like Nao. To decouple libraries from concrete logging implementations and their dependencies, RSC contains a flexible adaption layer that can utilize different logging mechanisms through one interface. If e.g. log4cxx is available, a client using the RSC logging system can use log4cxx through the provided interfaces. If no versatile logging system is available, RSC falls back on a simple console logging mechanism without any dependencies. Hence, client code does not need to be recompiled for changing the logging system.
Currently the linker call decides which logging mechanisms are available by linking their adapter shared libraries to the client. A plugin system is planned to remove the necessity of calling the linker.