ログをターミナルまたはコンソールに出力するときに色を指定する方法
ソフトウェアを開発する際、ログは動作確認や問題の原因究明に役立ちます。重大なエラーまたは警告レベルのログに見つけやすい色が付いていると便利です。
VS Code や Visual Studio など、使用している IDE でログ テキストの色を設定できますが、ソフトウェアが IDE なしで実行されている場合、または Linux などのクロスコンパイル環境で実行されている場合、設定は適用されません。 。そこで、端末側から独立して文字の色を設定する方法を紹介します。
Visual Studio Code で出力テキストの色を変更する方法
VS Code の場合、設定 > ユーザー > ワークバンチ > 外観 > Settings.json の編集
のworkbench.colorCustomizations
で色の値を設定することで、デバッグ コンソールまたは出力ウィンドウの色を変更できます。
workbench.colorCustomizations
のパラメータについては、以下のリンクを参照してください。
文字色の設定方法
テキストの色を変更するには、必要なテキストを中央に配置し、最初と最後に以下のコードを追加する必要があります。
- 開始 :
(エスケープ文字)[(スタイルコード);(テキストの色);(背景色)m
- テキスト :
(希望のテキスト)
- 終了 :
(エスケープ文字)[0m
最終的に文字色を変更した1行は以下のような形式になります。
(エスケープ文字)[(スタイルコード);(文字色);(背景色)m
(希望のテキスト)
(エスケープ文字)[0m
以下は、黒の背景に白の太字で文字列I am text
を表示した例です。
各番号の意味については、後のセクションの定義済みコードを確認してください。
1
\u001b[1;37;40mI am text\u001b[0m
まずは下の表を見てみましょう。文字色を変更するための各要素を列挙します。
要素 | 必須 | コメント |
---|---|---|
エスケープ文字 | はい | Unicode、8 進数、または 16 進数のエスケープ文字のうち、適切なものを使用してください。 |
スタイルコード | オプション | 太字、点滅、薄暗く、下線などのテキスト スタイル。 |
テキストの色 | オプション | テキストの色は、すでに定義されているカラーコードから選択します。 |
テキスト(前景色)の色 | オプション | テキストの背景色は、すでに定義されているカラーコードから選択します。 |
(エスケープ文字)[0m | はい | 一度設定したテキストの色とスタイルをリセットします。 複数の行の色を変更する場合は、後で必要な場所でテキストの色をリセットできます。 |
エスケープチャクター
は必須ですが、表現方法に応じて後述する3つのうちのいずれかを使用することができます。
スタイル
文字色
背景色
を;
で区切って好みに合わせて追加できます。表現できる選択肢については後ほど説明しますが、それぞれを表す数字は一意であるため、順序は関係ありません。
最後に、(エスケープ文字)[0m
を使用してテキストの色とスタイルをリセットします。リセットしない限り、以降のテキストの色とスタイルは継続されます。
シェル スクリプト内のテキストの色を変更したい場合は、バックスラッシュ入力を許可するために echo
コマンドに -e
オプションを追加する必要があります。
1
echo -e "\033[34m I Am Blue Text ! \033[0m"
カラーコードとスタイルコード
1. エスケープ文字
以下のエスケープ文字はASCIIコードの27と同じで、表現方法は以下の通りで、どれでも構いません。
\u001b
: Unicode エスケープ文字。これは、\u
の後の 4 桁の 16 進 Unicode コード ポイントを使用してエスケープ文字を表します。\033
: エスケープ文字を 8 進表記で表します。\x1b
: エスケープ文字を16進数で表します。
2. スタイル
テキストのスタイルを選択することもできますが、それが必要かどうかは疑問です。ログは読みやすいものでなければなりません。
1
: 太字 (または強烈な色)2
: 薄暗い(またはかすかな)4
: 下線5
: 点滅 (テキストが速く点滅)7
: 反転 (前景色と背景色を入れ替えます)8
: 非表示 (非表示のテキスト)
3. 文字(前景色)の色
文字の色を変更するコードです。これは、使用している端末クライアント ソフトウェアのデフォルトを上書きするものだと考えてください。
30
: 黒31
: 赤32
: 緑33
: 黄色34
: 青35
: マゼンタ36
: シアン37
: ホワイト
4. 背景色
40
: 黒背景41
: 赤背景42
: 緑色の背景43
: 黄色の背景44
: 青色の背景45
: マゼンタの背景46
: シアンの背景47
: 白背景
5. カラーリセット
テキストの色とスタイルをリセットしない場合は、最初の設定のままになります。
通常、これはテキストの末尾に (エスケープ文字)[0m
の形式で追加されます。
0
: すべてのスタイルと色をデフォルトにリセットします。