2016/08/10

[c/c++]TeraTermの出力に色を付ける

ログ出力させるマクロを書いていたのだが、ふっと、エラーレベルは赤で出力させたい、と思った。
ターゲットはBeagleBone Greenで、UART出力(/dev/ttyS0)をUSBシリアル変換してWindows上のTeraTermで見ている。

他の環境がわからないので、TeraTermで出力を見た場合に限定しておく。


「teraterm エスケープシーケンス」で検索するといくつも出てくるので、こちらを参考にした。
エスケープシーケンスを体感する - ザリガニが見ていた...。

こんなマクロを用意し、

#define LOG_COL_RED     "\e[31m"
#define LOG_COL_END     "\e[m"

こういう感じでログ出力にした。

#define LOGD0(s) printf(LOG_COL_RED "E/%s:%d: " s LOG_COL_END)

RTTViewerで色を出すと見やすいときがあるので、負担にならないならいいんじゃないかな、と思う。
まあ、解釈してくれないとゴミっぽく見えるので一長一短ではあるのだが。。。


ついでに(?)、makeでのecho出力も色を付けてみよう。
これは、黄色文字だ。

@echo -e "\033[0;93m"Hello!"\033[0m"

「-e」がないと、色が出ずにそのまま解釈されてしまった。

TeraTermのエスケープシーケンスルールとは違うようだ。
でも、TeraTermで黄色に見えるから、意味が同じで、表し方が違うだけなのだと思う。

makeの出力はたくさん出てくるから、背景に色を付けるタイプの方が見逃しにくいかもしれない。
私はMakefileを書くのが上手にならないので、こう書いたらいいよ、というのが説明できないのだ。
すまぬ。。。

 

こっちは、colormake、というmakeのラッパがあるよ、ということらしい。
今回はcygwinで見ているから確認してないけど、そういうのがあるんですな。
bash - How Can I highlight the warning and error lines in the make output? - Stack Overflow

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。