拖尾日志文件时较少的彩色输出

拖尾日志文件时较少的彩色输出

我迫切需要一种方法来在读取不断附加的文件时为较少的输出着色。

有问题的文件是 Resin servlet 容器日志。

我当前的配色方案“实现”可以使用关键字周围的颜色tail -F并进行编辑。sed我有四个单词要着色:INFO, WARN, ERROR, DEBUG,其中一个每行出现一次。

我尝试过使用LESSOPEN环境变量,但我似乎无法继续阅读日志。文件一旦打开就不会被拖尾。

我对服务器的控制很少,除了主文件夹中的我自己的脚本外,无法安装任何其他东西,因此没有软件包。有问题的服务器是 RHEL 6.4。

问题是less不继续读取文件。有没有办法使用LESSOPEN环境变量连续跟踪日志,或者我是否需要一些更复杂的工具?

答案1

问题出在linux上的管道上。CTRLc关闭管道并且less无法重新打开管道。

我发现可行的解决方案是将彩色日志重定向到一个文件,然后使用less.一份文件尾随在 之后CTRL-c,因此我只需执行以下操作:

tail -F -c +1 | colorize > /tmp/logfilename &
less -Sr /tmp/logfilename

奇迹般有效。

答案2

我在这里看到两个问题:

  • 如何以更少的速度对输出进行着色
  • 如何让 less 表现得像 tail -f

我无法回答第一个问题,尽管这LESSOPEN似乎是一个不错的途径。第二个很简单:启动 less as或如果 less 已经在运行则less +F点击。ShiftF

答案3

你可以跑tail -f 在 Emacs shell 缓冲区中,然后让 Emacs 进行着色。

嗨锁让您快速突出显示与正则表达式匹配的单词。有一种粗略的方法可以将突出显示模式保存在文件中,但是当文件实际上是命令的输出时,它并不方便。你最好写一个简单的主要模式字体锁定 关键词

答案4

我使用 vim 来模拟彩色less。它有一个less宏并使用 Vim 配色方案。

我将其添加到我的 bashrc 中:

alias cless='/usr/share/vim/vim73/macros/less.sh'

对于拖尾/跟随,您将需要一些允许跟随的 Vim 插件。也许尝试一下尾束插入。

相关内容