void vLog ( const char *fmt, ///< printf style format specified va_list args ///< variable list of arguments ) { // For now we call printf directly. A better way would be to install // a callback which does the real work #if CFG_LOG_ALLOW_DEFERRED_NL if ( gDeferredNewline && ( *fmt != '\r' )) { gDeferredNewline = 0; Log( "\r\n" ); } #endif #if defined( AVR ) # if CFG_LOG_USE_STDIO if ( gLogFs != NULL ) { vfprintf_P( gLogFs, fmt, args ); } #elif CFG_LOG_USE_USB_DEBUG vStrXPrintf_P( LogToUsbDebugFunc, NULL, fmt, args ); # else vStrXPrintf_P( LogToUartFunc, NULL, fmt, args ); # endif #else if ( gLogFunc != NULL ) { gLogFunc( LOG_LEVEL_NORMAL, fmt, args ); } #endif }
void vLog ( const char *fmt, ///< printf style format specified va_list args ///< variable list of arguments ) { // For now we call printf directly. A better way would be to install // a callback which does the real work #if defined( AVR ) # if CFG_LOG_USE_STDIO if ( gLogFs != NULL ) { vfprintf_P( gLogFs, fmt, args ); } # else vStrXPrintf_P( LogToUartFunc, NULL, fmt, args ); # endif #else if ( gLogFunc != NULL ) { gLogFunc( LOG_LEVEL_NORMAL, fmt, args ); } #endif }