Colorize tail output
我一直在努力让服务器初创公司的尾部更具可读性。 我当前的命令过滤掉了启动时的大部分INFO和DEBUG消息:
1 | 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,但幸存的唯一颜色是管道中的最后一个命令。
这样做有一个班轮吗? 甚至是很多班轮?
是的,有办法做到这一点。也就是说,只要您的终端支持ANSI转义序列。这是大多数存在的终端。
我想我不需要解释如何grep,sed等点是颜色吧?
见下文,这将使
1 2 3 | WARN yellow ERROR red foo green |
这是一个例子:
1 2 3 | kent$ echo"WARN ERROR foo"|sed 's#WARN#\x1b[33m&#; s#ERROR#\x1b[31m&#; s#foo#\x1b[32m&#' |
注意:
看到结果:
我多年前写过一个剧本。通过将
来自README:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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. |
多年来我一直在使用一种名为grc的工具。奇迹般有效。它为许多标准日志输出和格式提供了一些非常好的模板,很容易定义自己的模板。
我经常使用的命令是
1 | grc tail -f /var/log/syslog |
它为syslog输出着色,因此很容易发现错误(通常标记为红色)。
在这里找到工具:
https://github.com/garabik/grc
(它也可用作最常见的linux风格的包)。
您可以创建彩色日志,而不是使用复杂命令。
对于PHP是这样的:
1 | echo"^[[30;43m".$ip."^[[0m"; |
关键点是使用Ctrl-v ctrl- [输入绿色^ [在插入模式下在vim中,直接输入^ [不起作用。
更多信息在这里
我使用的是我攻击的版本:
python日志观察者