如何在Linux日志文件中给文本着色

11

我想为日志文件中的文本添加颜色。例如,我希望包含“ERROR”文本的行呈现红色。这样,在查看该文件时,我就可以轻松找到那些包含“ERROR”的行。我尝试寻找答案,但没有找到任何有用的信息。 提前致谢。


尝试查看lnav - Mureinik
1
我建议您不要将任何颜色代码添加到文件本身,而是确保查看器可以对文本进行着色。许多查看器和文本编辑器都包括添加自定义高亮显示的功能。 - Some programmer dude
我该怎么做?我想按照VIM定义代码段的颜色来做。@Someprogrammerdude - krish___na
这里有类似的东西,你可以看一下。祝好! - lord AJ
1
你不知道grep是什么吗? - Jean-Baptiste Yunès
很棒的回答@Jean-BaptisteYunès - krish___na
4个回答

5

Someprogrammerdude 建议利用观众对输出文本进行着色的能力。在vim生态系统中,这被称为“语法高亮”,但不仅限于此。

在vim中,你可以做的最简单的事情是:

:sy match my_error /.*ERROR.*/
:hi my_error ctermfg=red guifg=red

你可以将下面这些代码添加到你的.vimrc文件中,或者更好的方式是创建一个专门的语法文件来处理日志文件,从而定义更多的规则...

4

这样,当我查看该文件时,我应该能够轻松找到那些带有“ERROR”的行。

给这些行添加颜色是一种方法,但有一个更简单和更惯用的方法:

$ grep ERROR /path/to/logfile | less

此命令将在 less 中显示来自/path/to/logfile的每一行包含 ERROR 的内容。


2

我写了一个用于在日志文件中添加颜色的实用程序,名为TxtStyle。它可以根据配置文件~/.txts.conf中定义的正则表达式模式来着色日志文件:

[Style="example"]
!red: regex("error")
green: regex("\d{4}-\d\d-\d\d")
# .. snip ..

要尝试它,请运行以下命令(需要Python):

sudo pip install TxtStyle
wget -q https://raw.githubusercontent.com/armandino/TxtStyle/master/example.log
txts -n example example.log

enter image description here


0
你可以使用ccze来为文件着色:

e.g.:

docker logs -f <container> | ccze -m ansi

的意思是将Docker容器的日志实时输出,并通过ccze命令以ANSI颜色格式高亮显示。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接