參考:函數
https://my.oschina.net/u/2326611/blog/803191spa
static void colored_fputs(int level, int tint, const char *str) { int local_use_color; if (!*str) return; if (use_color < 0) check_color_terminal(); if (level == AV_LOG_INFO/8) local_use_color = 0; else local_use_color = use_color; #if defined(_WIN32) && !defined(__MINGW32CE__) && HAVE_SETCONSOLETEXTATTRIBUTE if (local_use_color) SetConsoleTextAttribute(con, background | color[level]); fputs(str, stderr); if (local_use_color) SetConsoleTextAttribute(con, attr_orig); #else if (local_use_color == 1) { fprintf(stderr, "\033[%d;3%dm%s\033[0m", (color[level] >> 4) & 15, color[level] & 15, str); } else if (tint && use_color == 256) { fprintf(stderr, "\033[48;5;%dm\033[38;5;%dm%s\033[0m", (color[level] >> 16) & 0xff, tint, str); } else if (local_use_color == 256) { fprintf(stderr, "\033[48;5;%dm\033[38;5;%dm%s\033[0m", (color[level] >> 16) & 0xff, (color[level] >> 8) & 0xff, str); } else fputs(str, stderr); #endif }
以local_use_color爲1爲例,fprintf函數以顯示方式,默認前景色和背景色打印日誌到終端。.net