docker_images/c/wrapper/logger.h (52 lines of code) (raw):

#pragma once #include <memory> #include <cstdio> #include <cstdarg> #include <cstdlib> #include <restbed> using namespace std; using namespace restbed; class CustomLogger : public Logger { public: void stop( void ) { return; } void start( const shared_ptr< const Settings >& ) { return; } const char *level_to_name(const Level level) { switch(level) { case INFO: return "INFO"; case DEBUG: return "DEBUG"; case FATAL: return "FATAL"; case ERROR: return "ERROR"; case WARNING: return "WARNING"; case SECURITY: return "SECURITY"; default: return "(unknown level)"; } } void log( const Level level, const char* format, ... ) { va_list arguments; va_start( arguments, format ); fprintf( stdout, "RESTBED:%s: ", level_to_name(level) ); vfprintf( stdout, format, arguments ); fprintf( stdout, "\n" ); va_end( arguments ); } void log_if( bool expression, const Level level, const char* format, ... ) { if ( expression ) { va_list arguments; va_start( arguments, format ); log( level, format, arguments ); va_end( arguments ); } } };