Goで標準出力をフィルタしてよしなに色を付けるツール書いた
タイトルの通り、Goで標準出力をフィルタしてよしなに色を付けるツール書きました。
モチベーションは「 go test
に色を付けるツールを作った #golang 」と同じです。
ある標準出力に対して、なんらかの文字列を含んでいたらその文字列に色を付けたり、行全体に色を付けたいという要求はよくあることだと思います。今回は、そうした小さな色付けルールをYAMLで記述してフィルタを適用する感じのツールにしました。
READMEにある通りですが、以下の様なログファイルがあったとして、
$ cat example.log
2023/05/19 23:56:54 [info] GET /some/resource 200 0.001
2023/05/19 23:56:55 [warn] GET /some/resource 200 0.001
2023/05/19 23:56:56 [error] GET /some/resource 200 0.001
2023/05/19 23:56:57 [info] GET /some/resource 200 0.001
こんな感じのYAMLファイルを用意しておきます。
$ cat ~/.config/irir/irir_rule.yaml
---
log:
- type: match
match: [info]
color: cyan
target: word
- type: match
match: [warn]
color: yellow
target: word
- type: match
match: [error]
color: bg_red
target: line
んで、irir
でフィルタした結果が以下の様に色付きになります。
$ cat example.log | irir log
文字列にマッチさせるところは正規表現も使えます。
詳しくは README をご覧ください。
ではでは。