iOS开发调试时控制台的日志的输出缺少分级,一些出错信息往往被忽视。XLog能够在Xcode控制台使用不同颜色区分显示各级别的日志信息,这能帮助你快速的发现出错信息。在旺信项目的日志工具(WXLog)中集成了该插件功能。开启方式:在安装该插件后,开启宏开关DISABLE_COLOR_LOG。
主要是在控制台输出日志时添加日志层级标识以及对应的颜色值。实现函数如下:
+(void)outputLogInfoColorful:(NSString *)logInfo logHead:(NSString *)logHead level:(NSInteger)level // 将日志输出控制台
{
NSString *lv_tag = [WXLogUtils getLogLevelTag:level];
NSString *color = [WXLogUtils getLogLevelColor:level];
printf("%s", [color UTF8String]);
printf("%s[%s]", [WXLOG_ESC_CH UTF8String], [lv_tag UTF8String]);
printf("\n%s ", [[[NSDate date] description] UTF8String]);
if(0 == DISABLE_MORE_INFO_LOG)
{
printf("%s", [logHead UTF8String]);
}
printf("%s", [logInfo UTF8String]);
printf("%s[/%s]", [WXLOG_ESC_CH UTF8String], [lv_tag UTF8String]);
printf("%s", [WXLOG_COLOR_RESET UTF8String]);
printf("\n");
}
+ (NSString *)getLogLevelTag:(NSInteger)level
{
NSString *levelTag = @"INFO";
switch(level)
{
case WXLOGLEVEL_ERROR: {
levelTag = WXLOG_LEVEL_ERROR_TAG;
} break;
case WXLOGLEVEL_WARNING: {
levelTag = WXLOG_LEVEL_WARN_TAG;
} break;
case WXLOGLEVEL_INFO: {
levelTag = WXLOG_LEVEL_INFO_TAG;
} break;
case WXLOGLEVEL_DEBUG: {
levelTag = WXLOG_LEVEL_DEBUG_TAG;
} break;
default: {
} break;
}
return levelTag;
}
+ (NSString *)getLogLevelColor:(NSInteger)level
{
NSString *color = WXLOG_COLOR_WHITE;
switch(level)
{
case WXLOGLEVEL_ERROR: {
color = WXLOG_COLOR_RED;
} break;
case WXLOGLEVEL_WARNING: {
color = WXLOG_COLOR_BROWN;
} break;
case WXLOGLEVEL_INFO: {
color = WXLOG_COLOR_GREEN;
} break;
case WXLOGLEVEL_DEBUG: {
color = WXLOG_COLOR_BLUE;
} break;
default: {
} break;
}
return color;
}
这是自定义的一套配色:
#define WXLOG_ESC_CH @"\033"
// colors for log level, change it as your wish
#define WXLOG_COLOR_RED WXLOG_ESC_CH @"#E8202A"
#define WXLOG_COLOR_GREEN WXLOG_ESC_CH @"#7CFC00"
#define WXLOG_COLOR_BROWN WXLOG_ESC_CH @"#DAA520"
#define WXLOG_COLOR_BLUE WXLOG_ESC_CH @"#4169E1"
#define WXLOG_COLOR_WHITE WXLOG_ESC_CH @"#FFFFFF"
// hard code, use 00000m for reset flag
#define WXLOG_COLOR_RESET WXLOG_ESC_CH @"#00000m"
#define WXLOG_LEVEL_DEBUG_TAG @"DEBUG"
#define WXLOG_LEVEL_INFO_TAG @"INFO"
#define WXLOG_LEVEL_WARN_TAG @"WARN"
#define WXLOG_LEVEL_ERROR_TAG @"ERROR"
效果如下: