IDEA插件-GrepConsole

GrepConsole 插件使用

GrepConsole 是 IntelliJ IDEA 的一款实用日志工具插件,可通过自定义规则对控制台输出进行高亮、过滤和格式化,帮助我们快速定位关键信息(如错误、警告、特定关键词)

先看一组对比,这是IDEA正常日志输出,虽然还算清晰但是有时日志复杂还是挺费劲的,因为要从一堆白色日志中找关键信息

image-20250427203435231

这是我给查询SQL配置了颜色后的效果,这个日志看起来轻松很多,而且你可以配置更多规则帮助快速获取关键信息,接下来说说怎么使用,其实这个插件除了高亮外还有过滤等功能,只不过我平时只使用高亮罢了

image-20250427205113813


一、安装插件

  1. 打开IDEA,进入 File → Settings → Plugins
  2. 在 Marketplace 中搜索 Grep Console,点击安装

image-20250427203159596


二、配置高亮规则

  1. 打开配置界面

安装完成后再控制台右边可以看到插件图标(确保有控制台有日志输出),点击可以进入配置界面

image-20250427205709367

2.添加高亮规则

打开配置界面后,确保Highlighting勾选,然后在Highlighting标签页添加规则

image-20250427210528463

default分组已经有了一些自带的规则,可以右键default然后点击duplicate复制一个分组并重命名,比如我有一个分组sql

3.编写对应规则

日志匹配规则采用正则表达式,比如我想高亮出日志中增删改查sql语句,就可以分别编写如下规则:

  • INSERT INTO.*
  • DELETE FROM.*
  • UPDATE.*SET.*
  • SELECT.*FROM.*

高亮的效果也有很多,每一列的作用如下,⚠️注意:表中注意事项仅代表我个人使用习惯

字段名 作用 示例/注意事项
Expression 正则表达式,用于匹配控制台输出的文本 示例:ERROR.*(匹配所有以 ERROR 开头的行),可用 .* 匹配任意字符。
Unless expression 正则表达式,用于排除的情况 示例:Expression设为.*Preparing.*可以配置所有SQL语句,此时将这项设为.*select.*就可以排除所有查询sql了
Whole line 高亮效果是否应用到整行 一般不用,看情况
Case Sensitive 匹配规则是否区分大小写 一般不勾选
Continue matching 是否继续匹配,一行日志可能匹配到多个规则,启用后可以有多个高亮效果 一般勾选
Multiline 启用后,当前效果一直往后面行延续 一般不用
Bold 设置为粗体 看情况
Italic 设置为斜体 一般不用
Background 设置匹配文本的背景颜色 重点设置的对象
Foreground 设置匹配文本的字体颜色 比较少用
Statusbar count 开启后会在状态栏显示高亮命中个数 基本不用,需要在配置界面顶部勾选Show Status Bar statistics
console count 开启后会在控制台下面显示高亮命中个数 基本不用,需要在配置界面顶部勾选Show Console statistics
sound 命中后播放声音? 不用

规则可以直接复制,选中一行或一组复制后可以直接在配置界面粘贴,下面是我的一些sql高亮配置,你可以直接复制然后在插件规则界面粘贴就可以导入,关于编写正则表达式可以问AI

<GrepConsoleItems>
<option name="items">
<GrepExpressionGroup>
<option name="grepExpressionItems">
<list>
<GrepExpressionItem>
<option name="action" />
<option name="caseInsensitive" value="false" />
<option name="clearConsole" value="false" />
<option name="continueMatching" value="false" />
<option name="defaultEnabled" value="true" />
<option name="defaultFilter" value="true" />
<option name="enabled" value="true" />
<option name="fold" value="false" />
<option name="foldPlaceholderTextPrefix" value="" />
<option name="grepExpression" value=".*Preparing.*" />
<option name="highlightOnlyMatchingText" value="false" />
<option name="inputFilter" value="false" />
<option name="multiline" value="false" />
<option name="name" />
<option name="operationOnMatch" value="EXIT" />
<option name="showCountInConsole" value="false" />
<option name="showCountInStatusBar" value="false" />
<option name="sound">
<Sound>
<option name="enabled" value="false" />
<option name="path" />
</Sound>
</option>
<option name="startFolding" value="false" />
<option name="stopFolding" value="false" />
<option name="style">
<GrepStyle>
<option name="backgroundColor">
<GrepColor>
<option name="color" value="-16713062" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="bold" value="false" />
<option name="effectColor">
<GrepColor>
<option name="color" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="effectType" />
<option name="foregroundColor">
<GrepColor>
<option name="color" value="-8274648" />
<option name="colorKey" />
<option name="enabled" value="true" />
</GrepColor>
</option>
<option name="italic" value="false" />
<option name="name" />
</GrepStyle>
</option>
<option name="unlessGrepExpression" value=".*select.*" />
</GrepExpressionItem>
<GrepExpressionItem>
<option name="action" />
<option name="caseInsensitive" value="false" />
<option name="clearConsole" value="false" />
<option name="continueMatching" value="true" />
<option name="defaultEnabled" value="true" />
<option name="defaultFilter" value="true" />
<option name="enabled" value="false" />
<option name="fold" value="false" />
<option name="foldPlaceholderTextPrefix" value="" />
<option name="grepExpression" value="Parameters.*" />
<option name="highlightOnlyMatchingText" value="true" />
<option name="inputFilter" value="false" />
<option name="multiline" value="false" />
<option name="name" />
<option name="operationOnMatch" value="CONTINUE_MATCHING" />
<option name="showCountInConsole" value="false" />
<option name="showCountInStatusBar" value="false" />
<option name="sound">
<Sound>
<option name="enabled" value="false" />
<option name="path" />
</Sound>
</option>
<option name="startFolding" value="false" />
<option name="stopFolding" value="false" />
<option name="style">
<GrepStyle>
<option name="backgroundColor">
<GrepColor>
<option name="color" value="-5658199" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="bold" value="false" />
<option name="effectColor">
<GrepColor>
<option name="color" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="effectType" />
<option name="foregroundColor">
<GrepColor>
<option name="color" value="-50185" />
<option name="colorKey" />
<option name="enabled" value="true" />
</GrepColor>
</option>
<option name="italic" value="false" />
<option name="name" />
</GrepStyle>
</option>
<option name="unlessGrepExpression" />
</GrepExpressionItem>
<GrepExpressionItem>
<option name="action" />
<option name="caseInsensitive" value="false" />
<option name="clearConsole" value="false" />
<option name="continueMatching" value="true" />
<option name="defaultEnabled" value="true" />
<option name="defaultFilter" value="true" />
<option name="enabled" value="false" />
<option name="fold" value="false" />
<option name="foldPlaceholderTextPrefix" value="" />
<option name="grepExpression" value="Total.*" />
<option name="highlightOnlyMatchingText" value="true" />
<option name="inputFilter" value="false" />
<option name="multiline" value="false" />
<option name="name" />
<option name="operationOnMatch" value="CONTINUE_MATCHING" />
<option name="showCountInConsole" value="false" />
<option name="showCountInStatusBar" value="false" />
<option name="sound">
<Sound>
<option name="enabled" value="false" />
<option name="path" />
</Sound>
</option>
<option name="startFolding" value="false" />
<option name="stopFolding" value="false" />
<option name="style">
<GrepStyle>
<option name="backgroundColor">
<GrepColor>
<option name="color" value="-6270419" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="bold" value="false" />
<option name="effectColor">
<GrepColor>
<option name="color" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="effectType" />
<option name="foregroundColor">
<GrepColor>
<option name="color" value="-10496" />
<option name="colorKey" />
<option name="enabled" value="true" />
</GrepColor>
</option>
<option name="italic" value="false" />
<option name="name" />
</GrepStyle>
</option>
<option name="unlessGrepExpression" />
</GrepExpressionItem>
<GrepExpressionItem>
<option name="action" />
<option name="caseInsensitive" value="false" />
<option name="clearConsole" value="false" />
<option name="continueMatching" value="false" />
<option name="defaultEnabled" value="true" />
<option name="defaultFilter" value="true" />
<option name="enabled" value="true" />
<option name="fold" value="false" />
<option name="foldPlaceholderTextPrefix" value="" />
<option name="grepExpression" value="DELETE FROM.*" />
<option name="highlightOnlyMatchingText" value="true" />
<option name="inputFilter" value="false" />
<option name="multiline" value="false" />
<option name="name" />
<option name="operationOnMatch" value="EXIT" />
<option name="showCountInConsole" value="false" />
<option name="showCountInStatusBar" value="false" />
<option name="sound">
<Sound>
<option name="enabled" value="false" />
<option name="path" />
</Sound>
</option>
<option name="startFolding" value="false" />
<option name="stopFolding" value="false" />
<option name="style">
<GrepStyle>
<option name="backgroundColor">
<GrepColor>
<option name="color" value="-11179217" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="bold" value="true" />
<option name="effectColor">
<GrepColor>
<option name="color" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="effectType" />
<option name="foregroundColor">
<GrepColor>
<option name="color" value="-40568" />
<option name="colorKey" />
<option name="enabled" value="true" />
</GrepColor>
</option>
<option name="italic" value="false" />
<option name="name" />
</GrepStyle>
</option>
<option name="unlessGrepExpression" />
</GrepExpressionItem>
<GrepExpressionItem>
<option name="action" />
<option name="caseInsensitive" value="false" />
<option name="clearConsole" value="false" />
<option name="continueMatching" value="false" />
<option name="defaultEnabled" value="true" />
<option name="defaultFilter" value="true" />
<option name="enabled" value="true" />
<option name="fold" value="false" />
<option name="foldPlaceholderTextPrefix" value="" />
<option name="grepExpression" value="INSERT INTO.*" />
<option name="highlightOnlyMatchingText" value="true" />
<option name="inputFilter" value="false" />
<option name="multiline" value="false" />
<option name="name" />
<option name="operationOnMatch" value="EXIT" />
<option name="showCountInConsole" value="false" />
<option name="showCountInStatusBar" value="false" />
<option name="sound">
<Sound>
<option name="enabled" value="false" />
<option name="path" />
</Sound>
</option>
<option name="startFolding" value="false" />
<option name="stopFolding" value="false" />
<option name="style">
<GrepStyle>
<option name="backgroundColor">
<GrepColor>
<option name="color" value="-3730043" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="bold" value="true" />
<option name="effectColor">
<GrepColor>
<option name="color" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="effectType" />
<option name="foregroundColor">
<GrepColor>
<option name="color" value="-357354" />
<option name="colorKey" />
<option name="enabled" value="true" />
</GrepColor>
</option>
<option name="italic" value="false" />
<option name="name" />
</GrepStyle>
</option>
<option name="unlessGrepExpression" />
</GrepExpressionItem>
<GrepExpressionItem>
<option name="action" />
<option name="caseInsensitive" value="false" />
<option name="clearConsole" value="false" />
<option name="continueMatching" value="false" />
<option name="defaultEnabled" value="true" />
<option name="defaultFilter" value="true" />
<option name="enabled" value="true" />
<option name="fold" value="false" />
<option name="foldPlaceholderTextPrefix" value="" />
<option name="grepExpression" value="UPDATE.*SET.*" />
<option name="highlightOnlyMatchingText" value="true" />
<option name="inputFilter" value="false" />
<option name="multiline" value="false" />
<option name="name" />
<option name="operationOnMatch" value="EXIT" />
<option name="showCountInConsole" value="false" />
<option name="showCountInStatusBar" value="false" />
<option name="sound">
<Sound>
<option name="enabled" value="false" />
<option name="path" />
</Sound>
</option>
<option name="startFolding" value="false" />
<option name="stopFolding" value="false" />
<option name="style">
<GrepStyle>
<option name="backgroundColor">
<GrepColor>
<option name="color" value="-3730043" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="bold" value="true" />
<option name="effectColor">
<GrepColor>
<option name="color" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="effectType" />
<option name="foregroundColor">
<GrepColor>
<option name="color" value="-13000449" />
<option name="colorKey" />
<option name="enabled" value="true" />
</GrepColor>
</option>
<option name="italic" value="false" />
<option name="name" />
</GrepStyle>
</option>
<option name="unlessGrepExpression" />
</GrepExpressionItem>
<GrepExpressionItem>
<option name="action" />
<option name="caseInsensitive" value="false" />
<option name="clearConsole" value="false" />
<option name="continueMatching" value="false" />
<option name="defaultEnabled" value="true" />
<option name="defaultFilter" value="true" />
<option name="enabled" value="false" />
<option name="fold" value="false" />
<option name="foldPlaceholderTextPrefix" value="" />
<option name="grepExpression" value="SELECT.*FROM.*" />
<option name="highlightOnlyMatchingText" value="true" />
<option name="inputFilter" value="false" />
<option name="multiline" value="false" />
<option name="name" />
<option name="operationOnMatch" value="EXIT" />
<option name="showCountInConsole" value="false" />
<option name="showCountInStatusBar" value="false" />
<option name="sound">
<Sound>
<option name="enabled" value="false" />
<option name="path" />
</Sound>
</option>
<option name="startFolding" value="false" />
<option name="stopFolding" value="false" />
<option name="style">
<GrepStyle>
<option name="backgroundColor">
<GrepColor>
<option name="color" value="-3730043" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="bold" value="true" />
<option name="effectColor">
<GrepColor>
<option name="color" />
<option name="colorKey" />
<option name="enabled" value="false" />
</GrepColor>
</option>
<option name="effectType" />
<option name="foregroundColor">
<GrepColor>
<option name="color" value="-7405" />
<option name="colorKey" />
<option name="enabled" value="true" />
</GrepColor>
</option>
<option name="italic" value="false" />
<option name="name" />
</GrepStyle>
</option>
<option name="unlessGrepExpression" />
</GrepExpressionItem>
</list>
</option>
<option name="name" value="sql" />
</GrepExpressionGroup>
</option>
</GrepConsoleItems>