如何在Multitail中着色Rails日志?

时间:2013-03-28 19:37:48

标签: ruby-on-rails colors tail ansi-escape

XFCE终端中tail logs/development.log的输出:

output of tail logs/development.log in XFCE Terminal

multitail log/development.log

output of multitail log/development.log

Rails会自动将转义码添加到日志文件中。请参阅development.log文件:

  ^[[1m^[[36m (84.1ms)^[[0m  ^[[1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) ^[[0m
  ^[[1m^[[35m (92.6ms)^[[0m  CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
  ^[[1m^[[36m (0.2ms)^[[0m  ^[[1mSELECT version FROM "schema_migrations"^[[0m
  ^[[1m^[[35m (159.3ms)^[[0m  INSERT INTO "schema_migrations" (version) VALUES ('20130327221553')
  ^[[1m^[[36m (59.9ms)^[[0m  ^[[1mINSERT INTO "schema_migrations" (version) VALUES ('20130326152730')^[[0m
  ^[[1m^[[35m (59.8ms)^[[0m  INSERT INTO "schema_migrations" (version) VALUES ('20130327173637')

multitail -c产生不可用的输出。

Output of multitail -c

如何在不编写自己的配色方案的情况下为Multitail中的日志着色?

1 个答案:

答案 0 :(得分:32)

所有这些都是关于解释ANSI escape sequences,而终端不是tail本身,也必须做multitail。  可以使用-cT ANSI选项完成:

-cT term    interpret terminal-codes from file/command (for terminal type 'term')

示例:

$ multitail -cT ansi log/development.log
multiple files:
$ multitail -cT ansi log/development.log -cT ANSI log/test.log

colorized output of multitail -cT ansi log/development.log