#include #include #include #include #include #include #ifndef WIN32 #include #endif #include #define COLOR_CONSOLE 1 #include "console_defines.h" #include #include namespace fc { console_appender::console_appender( const variant& args ) { try { cfg = args.as();//fc::variant_cast(args); for( int i = 0; i < log_level::off+1; ++i ) lc[i] = color::console_default; for( auto itr = cfg.level_colors.begin(); itr != cfg.level_colors.end(); ++itr ) lc[itr->level] = itr->color; } catch ( exception& e ) { fc::cerr< lock(log_mutex()); #ifndef WIN32 if(isatty(fileno(out))) fprintf( out, "\r%s", get_color( m.get_context().get_log_level() ) ); #endif fprintf( out, "%s", fmt_str.c_str() ); #ifndef WIN32 if(isatty(fileno(out))) fprintf( out, "\r%s", CONSOLE_DEFAULT ); #endif fprintf( out, "\n" ); if( cfg.flush ) fflush( out ); } }