当前位置 博文首页 > PhantomRead:使用idea插件ideolog识别log文件的相关设置

    PhantomRead:使用idea插件ideolog识别log文件的相关设置

    作者:PhantomRead 时间:2021-01-21 20:04

    使用idea插件识别log文件的相关设置

    最近要读一些spring boot项目产生的log文件,众所周知,idea拥有强大的插件系统。当我打开log文件时,idea自动帮我推荐了ideolog这个插件。

    但是当我安装好之后发现系统并不能完全识别我的log格式。仔细查看后发现,原来是各个系统输出的log文件各有不同,需要用正则表达式来匹配。

    所以我就研究了一下正则表达式。并成功解析了spring boot项目输出的log文件。

    这个网站可以检查正则表达式是否能正确解析,还能进行debug,看看匹配卡在了哪一步

    以下为代码

    例:
    2021-01-21 11:19:19.111  INFO 10808 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/9.0.12
    
    正则:
    ^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3})\s*([A-Z]*)\s\d*\s\-{3}\s(\[.*\]).*\: .*$
    
    解释:
    1. ^为文件开头
    2. \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}为时间格式yyyy-MM-dd HH:mm:ss.SSS的正则写法
    3. \s*表示中间有多个不可见字符
    4. ([A-Z]*)表示有多个A-Z字符
    5. \s表示有一个不可见字符
    6. \d*表示有多个数字
    7. \s表示有一个不可见字符
    8. \-{3}表示有3个横杠杠
    9. \s表示有一个不可见字符
    10. (\[.*\])表示有一个中括号包裹的多个任意字符
    11. .* 表示有多个任意字符
    12. \:表示有一个冒号
    13. 空格表示一个空格
    14. .*$表示有多个任意字符且到文件末尾
    

    这样就能对log文件的每一行进行正确识别。

    以下为正确识别之后的log文件截图

    以下为ideolog的配置页面