There is a library that replaces all [vsn]printf()
functions. These alternative functions are interrupt safe, they do not use any heap, and they have a very low stack usage. See printf-stdarg.c.
The only downsize is that the module doesn’t properly support floating point formats.