Colorize tail output

14 浏览
0 Comments

Colorize tail output

我一直在努力让服务器启动时的日志更易读。我的当前命令会筛除掉启动过程中的大部分 INFO 和 DEBUG 信息:

tail -F ../server/durango/log/server.log | grep -e "ERROR" -e "WARN" -e "Shutdown" -e "MicroKernel" | grep --color=auto -E 'MicroKernel|$'

我想的是用黄色突出显示WARN,用红色突出显示ERROR,用绿色突出显示MicroKernel。我试过多次使用grep --color=auto进行管道操作,但只有最后一个命令的颜色生效。

是否有一行命令可以实现这个效果?或者有多行命令可以实现吗?

0
0 Comments

问题出现的原因:

作者使用grc工具对日志文件进行查看和跟踪,以便更容易地发现错误。然而,grc工具在系统上并不是默认安装的,需要手动安装和配置。

解决方法:

1. 下载grc工具,可以从https://github.com/garabik/grc获取源代码,或者从常见的Linux发行版的软件包管理器中安装。

2. 安装grc工具,可以按照官方文档或者软件包管理器的指导进行安装。

3. 配置grc工具,可以通过修改/etc/profile.d/grc.sh文件来定义默认的颜色化输出命令别名。在该文件中添加以下内容:

if [ -x /usr/bin/grc ]; then
    alias cat='grc --colour auto cat'
    alias tail='grc --colour auto tail'
    alias head='grc --colour auto head'
fi

4. 保存文件并退出。重新启动终端或者重新加载配置文件以使修改生效。

5. 现在可以使用颜色化的tail命令查看和跟踪日志文件了。例如,运行以下命令:

grc tail -f /var/log/syslog

这将以颜色区分显示syslog文件的输出,使错误更容易被发现。

通过上述步骤,可以解决使用grc工具进行日志文件颜色化输出的问题。

0
0 Comments

这篇文章主要介绍了一个脚本highlight,用于在标准输出中高亮显示指定的模式。文章中提到,该脚本可以通过管道将多个highlight的调用连接起来,来实现多个颜色的覆盖。

highlight脚本的用法如下:

Usage: ./highlight [-i] [--color=COLOR_STRING] [--]  [PATTERN1...]
This is highlight version 1.0.
This program takes text via standard input and outputs it with the given
perlre(1) pattern(s) highlighted with the given color.  If no color option
is specified, it defaults to 'bold red'.  Colors may be anything
that Perl's Term::ANSIColor understands.  This program is similar to
"grep --color PATTERN" except both matching and non-matching lines are
printed.
The default color can be selected via the $HIGHLIGHT_COLOR environment
variable.  The command-line option takes precedence.
Passing -i or --ignore-case will enable case-insensitive matching.
If your pattern begins with a dash ('-'), you can pass a '--' argument
after any options and before your pattern to distinguish it from an
option.

从脚本的用法中我们可以看到,它通过标准输入接收文本,并使用给定的模式和颜色对文本进行高亮显示。如果未指定颜色选项,则默认为“bold red”。可以通过设置环境变量$HIGHLIGHT_COLOR来选择默认颜色,命令行选项优先级更高。还可以通过使用选项“-i”或“--ignore-case”来启用不区分大小写的匹配。

highlight脚本的作者提到,可以通过将多个highlight的调用通过管道连接起来,来实现多个颜色的覆盖。具体实现方法不在文章中提及。

highlight脚本的问题是无法直接实现多个颜色的覆盖,解决方法是通过将多个highlight的调用通过管道连接起来。在每次调用highlight时,可以通过选项“--color”指定不同的颜色。

0
0 Comments

在这段内容中,提到了一种将tail输出着色的方法,前提是你的终端支持ANSI转义序列。这个问题的解决方法是通过使用sed命令来替换关键词,并在关键词前添加ANSI转义序列来实现着色效果。在sed命令中,使用\x1b表示ESC字符,然后紧跟着转义序列和关键词,如\x1b[33m表示黄色。如果只想着色匹配的关键词而不是整行,可以在sed命令中的&后面添加\x1b[0m。另外,还提到了一种将ESC字符输入终端的方法,即使用\x1b表示十六进制的ESC字符。此外,还提到了一个关于终端显示的问题,并指出这个问题是由于个人设置造成的。最后,还提到了制作示例动画和感谢对编辑的赞赏。

0