1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ひとりアドベントカレンダーチャレンジAdvent Calendar 2024

Day 20

ターミナルに表示される`console.log`をカラフルにして視認性を上げる方法

Posted at

はじめに

この記事は、ターミナルに表示されるconsole.logをカラフルにして、視認性を上げる方法を紹介します。

なぜカラフルにするのか

console.logで表示されるログは、デフォルトでは白黒で表示されます。これが大量に流れてくるとすごくみづらいんですよね...
どこに目当てのログがあるのか、そもそもログにでているのか。探すのに数秒〜数十秒かけるのはもったいないので、カラフルにして解決しましょうという記事です。

なお、特定のプレフィックス的なものをつけて検索で探す方法もありますが、ロマンとかっこよさに欠けるのでナシです。

カラフルにする方法

ANSIエスケープコードというものを使用して、カラフルにすることができます。

console.log('\x1b[31m', '赤い文字', '\x1b[0m');

これでどういった表示がされるかというと...

スクリーンショット 2024-12-24 22.40.19.png

どうでしょうか!煌々と輝く赤い文字が表示されました!
これで視認性が極限まで上がりましたね。

そのほかの色や、背景色、文字のスタイルなども使用できるので、その例を見ていきましょう。

また、記法としては\x1b[{コード}mという形式で記述します。

文字色の種類

コード
30 \x1b[30m
31 \x1b[31m
32 \x1b[32m
黄色 33 \x1b[33m
34 \x1b[34m
マゼンタ 35 \x1b[35m
シアン 36 \x1b[36m
37 \x1b[37m
console.log('\x1b[31m', '赤い文字', '\x1b[0m');
console.log('\x1b[32m', '緑の文字', '\x1b[0m');
console.log('\x1b[33m', '黄色の文字', '\x1b[0m');
console.log('\x1b[34m', '青い文字', '\x1b[0m');
console.log('\x1b[35m', 'マゼンタの文字', '\x1b[0m');
console.log('\x1b[36m', 'シアンの文字', '\x1b[0m');
console.log('\x1b[37m', '白い文字', '\x1b[0m');

スクリーンショット 2024-12-24 22.54.30.png

背景色の種類

コード
40 \x1b[40m
41 \x1b[41m
42 \x1b[42m
黄色 43 \x1b[43m
44 \x1b[44m
マゼンタ 45 \x1b[45m
シアン 46 \x1b[46m
47 \x1b[47m
console.log('\x1b[41m', '赤い背景', '\x1b[0m');
console.log('\x1b[42m', '緑の背景', '\x1b[0m');
console.log('\x1b[43m', '黄色の背景', '\x1b[0m');
console.log('\x1b[44m', '青い背景', '\x1b[0m');
console.log('\x1b[45m', 'マゼンタの背景', '\x1b[0m');
console.log('\x1b[46m', 'シアンの背景', '\x1b[0m');
console.log('\x1b[47m', '白い背景', '\x1b[0m');

スクリーンショット 2024-12-24 22.55.57.png

###  文字色の種類(明るい版)

コード
明るい黒 90 \x1b[90m
明るい赤 91 \x1b[91m
明るい緑 92 \x1b[92m
明るい黄色 93 \x1b[93m
明るい青 94 \x1b[94m
明るいマゼンタ 95 \x1b[95m
明るいシアン 96 \x1b[96m
明るい白 97 \x1b[97m
console.log('\x1b[91m', '明るい赤い文字', '\x1b[0m');
console.log('\x1b[92m', '明るい緑の文字', '\x1b[0m');
console.log('\x1b[93m', '明るい黄色の文字', '\x1b[0m');
console.log('\x1b[94m', '明るい青い文字', '\x1b[0m');
console.log('\x1b[95m', '明るいマゼンタの文字', '\x1b[0m');
console.log('\x1b[96m', '明るいシアンの文字', '\x1b[0m');
console.log('\x1b[97m', '明るい白い文字', '\x1b[0m');

スクリーンショット 2024-12-24 22.59.03.png

背景色の種類(明るい版)

コード
明るい黒 100 \x1b[100m
明るい赤 101 \x1b[101m
明るい緑 102 \x1b[102m
明るい黄色 103 \x1b[103m
明るい青 104 \x1b[104m
明るいマゼンタ 105 \x1b[105m
明るいシアン 106 \x1b[106m
明るい白 107 \x1b[107m
console.log('\x1b[41m', '普通の赤い背景(比較用)', '\x1b[0m');
console.log('\x1b[101m', '明るい赤い背景', '\x1b[0m');
console.log('\x1b[102m', '明るい緑の背景', '\x1b[0m');
console.log('\x1b[103m', '明るい黄色の背景', '\x1b[0m');
console.log('\x1b[104m', '明るい青い背景', '\x1b[0m');
console.log('\x1b[105m', '明るいマゼンタの背景', '\x1b[0m');
console.log('\x1b[106m', '明るいシアンの背景', '\x1b[0m');
console.log('\x1b[107m', '明るい白い背景', '\x1b[0m');

スクリーンショット 2024-12-24 23.05.51.png

文字のスタイル

スタイル コード
リセット 0 \x1b[0m
太字 1 \x1b[1m
薄い文字 2 \x1b[2m
イタリック 3 \x1b[3m
下線 4 \x1b[4m
反転(背景と文字) 7 \x1b[7m
隠し文字 8 \x1b[8m
取り消し線 9 \x1b[9m
二重下線 21 \x1b[21m
console.log('\x1b[1m', '太字', '\x1b[0m');
console.log('\x1b[2m', '薄い文字', '\x1b[0m');
console.log('\x1b[3m', 'イタリック', '\x1b[0m');
console.log('\x1b[4m', '下線', '\x1b[0m');
console.log('\x1b[7m', '反転', '\x1b[0m');
console.log('\x1b[8m', '隠し文字', '\x1b[0m');
console.log('\x1b[9m', '取り消し線', '\x1b[0m');
console.log('\x1b[21m', '二重下線', '\x1b[0m');

スクリーンショット 2024-12-24 23.07.51.png

組み合わせ

ここまで紹介してきたものを組み合わせて、さらにカラフルなログを表示してみましょう。

console.log('\x1b[47;30m', '白背景 * 黒文字', '\x1b[0m');
console.log('\x1b[43;30m', '黄色背景 * 黒文字', '\x1b[0m');
console.log('\x1b[37;44;1m', '青背景 * 白文字 * 太文字', '\x1b[0m');

スクリーンショット 2024-12-24 23.21.47.png

まとめ

今回は、console.logをカラフルにする方法を紹介しました。
正直楽しさ全振りの記事ですが、実際に使うとまあまあ視認性もちゃんと上がるので、ぜひ使ってみてください!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?