当将heroku日志输出管道到其他命令(例如grep)时,如何保留颜色?

6

我正在使用grep命令来过滤掉由NewRelic等工具生成的大量日志噪声。我使用以下命令:

heroku logs --force-colors -t -a myApp -s app | grep --color=never web.1

不幸的是,有用的日志着色在某处丢失,输出变得没有颜色。

--force-colors 标志应该强制 heroku logs 命令输出颜色,即使将输出导出到其他地方。 --color=never 标志应该强制 grep 不使用它们自己的着色方案。

我已经尝试了所有可能的组合,包括这两个颜色标志的存在或缺失,但都无济于事。是否有人对如何解决这个问题有建议?

1个回答

10

我在这里找到了一个解决方案(链接)

script -q /dev/null heroku logs --force-colors -t -a myApp -s app | grep --color=never web.1

颜色标志并不是必需的,所以这个也可以工作:

script -q /dev/null heroku logs -t -a myApp -s app | grep web.1

1
看起来使用这个的人不是很多,但它对我们非常有帮助。谢谢! - Ferran Maylinch
我不得不使用 script --flush --quiet --return /tmp/heroku-logs.txt --command "heroku logs -a app -t" > /dev/null 命令将其首先导入到一个文件中并保留颜色:tail -f /tmp/heroku-logs.txt - Anne van Rossum

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