C言語で色付きログを出力したくなった時のために
コンソールに引き籠もっている時に、色気が欲しくなった場合に備えてgithubにコードをあげておく。
何ができるのか
console(ターミナルソフト)で色付きのログを出すことができる。(ただし、16色まで)
mac,cygwinで動作確認済み。多分linuxでも動くはず。
とりあえず、使い方
git hubに上げてあるので以下で取得
$ git clone https://github.com/tksmiura/color_log
使うのはcolor_log.hとcolor_log.cのみ、
適当に自分のプロジェクトに取り込んで下さい。
サンプルのビルド方法は、
$ gcc -o test test.c
$ gcc -o test2 test2.c color_log.c
色をつけるエスケープシーケンスをマクロ(文字列)にしているので、色付きの出力はこんな感じでできます。
#inclue "color_log.h"
printf(COLOR_FG_LRED "COLOR_FG_LRED" COLOR_RESET "\n");
...
関数とマクロを使って以下のようにすることも可能
log_printf(LOG_LEVEL_INFO, "[this is info]");
WARN_LOG("WARN_LOG log.....\n");
こちらは、
- コンソール以外では、エスケープシーケンスが出ないように制御(isatty())
- コンソールの場合、コンソールの幅でカットすることで1行以上にならないようにする(ASCII文字以外非対応、ioctl )
ということをやっています。
test2がサンプルです。| cat
でパイプすると色が出ません。(ただし、emacsのシェルでは上手く動作せず、、、orz)
参考
https://www.serendip.ws/archives/4635
https://www.mm2d.net/main/prog/c/console-02.html
https://qiita.com/hidetzu/items/2978f63e6d9b1848d8fe
課題
できればemacsに引き籠もって一歩も外に出たくない
Author And Source
この問題について(C言語で色付きログを出力したくなった時のために), 我々は、より多くの情報をここで見つけました https://qiita.com/tksmiura/items/d03bd80e110412a07113著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .