zoukankan      html  css  js  c++  java
  • 【小而优】 如何实现 tail -f 动态显示日志时高亮显示关键字

    前言

    如果你在linux下工作,那用tail -f跟踪一个日志文件的输出内容应该是家常便饭了。

    但是,有时你更关心的是一些敏感字词,希望能够在动态跟踪的同时,把这些字词高亮出来,比如日志中的 ERROR 关键字。

    那么,一种思路就是把你tail输出的东西再做一次包装处理,这个很符合linux管道处理的思想。

    tailf

    以高亮Log中的 ERROR 为例,你可以这样:

    tail -f xxx.log | perl -pe 's/(ERROR)/e[1;31m$1e[0m/g'

    其中,xxx.log是你要跟踪的文件。这里假设了你的Linux的PATH中有perl。perl在这里干的事情,就是通过命令行的方式进行动态的替换ERROR字符串的操作,替换过程中,主要使用了Linux的console_codes的语法结构。(具体关于console_codes的细节,可以通过man console_codes进行了解)这里,e主要进行转移说明。

    如果你手头有server log之类的日志,试试上面的命令,是不是把ERROR全部标红了。

    利用这个原理,你完全可以按照你所需要的颜色高亮你感兴趣的输出,具体的颜色说明,可以在man console_codes中查到。

    less

    另外,less本身也支持类似于tail -f的操作,就是在你用less打开一个文件之后,按住SHIFT+F键,这样就直接进入follow的模式了。看上去跟tail -f效果是一致的。利用这点,你想达到高亮的tail -f的效果,就拢共分为以下3步了:

    • less xxx.log
    • 中/${key_work}的方式搜索你要高亮的关键字。(即使目前文件中没有也没关系)
    • SHIFT+F,进入follow模式
  • 相关阅读:
    ASP.NET Post方式提交
    MVC增加操作日志
    asp.net MVC 下拉多级联动及编辑
    redis基本数据类型之String
    关于idea下使用springinitializr创建项目时 初始化失败的解决
    Failed to read artifact descriptor for org.mybatis:mybatis:jar:2.2.1
    如何查看日志文件
    nginx 部署vue 以及同一端口下部署监听多个vue 项目
    JsonView 与JsonIgnore 使用
    vue 打包部署
  • 原文地址:https://www.cnblogs.com/Detector/p/7246377.html
Copyright © 2011-2022 走看看