我一直在尝试让服务器初创公司的尾部更具可读性。我当前的命令过滤掉了来自启动的大部分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 ,但幸存的唯一颜色是管道中的最后一个命令。
这是否有一个班轮?甚至是很多班轮?
答案 0 :(得分:25)
我想我不需要解释如何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 )。
查看结果:
答案 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)
您可以创建彩色日志,而不必使用复杂的命令。
对于php来说是这样的:
echo "^[[30;43m".$ip."^[[0m";
关键点是在vim的插入模式下使用Ctrl-v ctrl- [输入绿色^ [,直接输入^ [不起作用。
答案 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