着色尾部输出

时间:2013-02-04 17:06:20

标签: linux bash shell

我一直在尝试让服务器初创公司的尾部更具可读性。我当前的命令过滤掉了来自启动的大部分INFO和DEBUG消息:

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

我想做的是制作一些突出显示黄色的 WARN ,红色的错误和绿色的 MicroKernel 。我尝试多次管道 grep --color = auto ,但幸存的唯一颜色是管道中的最后一个命令。

这是否有一个班轮?甚至是很多班轮?

6 个答案:

答案 0 :(得分:25)

是的,有办法做到这一点。也就是说,只要您的终端支持 ANSI escape sequences 。这是大多数存在的终端。

我想我不需要解释如何grep,sed等点是颜色对吗?

见下文,这将使

WARN yellow
ERROR red
foo   green

这里是例子:

kent$ echo "WARN
ERROR
foo"|sed 's#WARN#\x1b[33m&#; s#ERROR#\x1b[31m&#; s#foo#\x1b[32m&#'

注意\x1b ESC 字符的十六进制( ^ V Esc )。

查看结果:

enter image description here

答案 1 :(得分:6)

我多年前写过a script。通过将highlight的连续调用相互交错,您可以轻松覆盖多种颜色的情况。

来自自述文件:

Usage: ./highlight [-i] [--color=COLOR_STRING] [--] <PATTERN0> [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.

答案 2 :(得分:0)

我使用的是我攻击的版本: python log watcher

答案 3 :(得分:0)

您可以创建彩色日志,而不必使用复杂的命令。

enter image description here

对于php来说是这样的:

echo "^[[30;43m".$ip."^[[0m";

关键点是在vim的插入模式下使用Ctrl-v ctrl- [输入绿色^ [,直接输入^ [不起作用。

enter image description here

More info here

答案 4 :(得分:0)

多年来,我一直在使用称为grc的工具。奇迹般有效。它带有一些相当不错的模板,可用于许多标准日志输出和格式,并且很容易定义自己的模板。 我经常使用的命令是

grc tail -f /var/log/syslog

它使syslog输出着色,因此很容易发现错误(通常标记为红色。

在此处找到该工具:

https://github.com/garabik/grc

(它也可以作为大多数常见的Linux版本的软件包提供)。

答案 5 :(得分:0)

我写了TxtStyle,这是一个用于为日志着色的小型实用程序。您定义正则表达式以在no connection文件中突出显示:

~/.txts.conf

然后应用样式:

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

或者您也可以通过管道输出

txts -n example example.log

enter image description here