#include #include #include #include #include #include #include #include namespace fc { const char* thread_name(); void* thread_ptr(); const char* short_name( const char* file_name ) { const char* end = file_name + strlen(file_name); --end; while( end >= file_name ) { if( *end == '/' || *end == '\\' ) { return end + 1; } --end; } return file_name; } #ifdef WIN32 #define isatty _isatty #define fileno _fileno #endif // WIN32 void log( const char* color, const char* file_name, size_t line_num, const char* method_name, const char* format, ... ) { fc::unique_lock lock(log_mutex()); if(isatty(fileno(stderr))) std::cerr<<"\r"<