Spring BootアプリケーションのIntellij Idea内でカラー出力を機能させる方法を誰かが考えましたか?
Mac、Intellij Idea 14、Spring Boot v1.2.2.RELEASEを使用して、設定する必要があるのは以下の設定のみです。
spring.output.ansi.enabled=ALWAYS
これをVMオプション(-Dspring.output.ansi.enabled=ALWAYS
)。よく働く!
application.propertiesでは、(たとえば)次の行を使用します。
logging.pattern.console= %d{yyyy-MMM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
Spring Bootにほぼ類似したい場合は、次のようなパターンを使用できます。
%date %highlight(%-5level) [%12.12thread] %cyan(%-40.40logger{40}) : %msg %n
これらのプロパティをIntelliJ IDEAのapplication.propertiesに追加するだけです。
spring.main.banner-mode=off
spring.output.ansi.enabled=ALWAYS
Gradleを使用して、任意の条件でログカラーのサポートを有効にする一般的な方法:
bootRun {
def console = System.console() != null
if (! console) { console = System.getenv()["TERM"].startsWith("xterm") }
if (console) systemProperties 'spring.output.ansi.enabled': 'always'
}
IntelliJ(2019)およびSpring Boot(2.0)の新しいバージョンでは、IntelliJカラーロギング内でSpring Bootアプリケーションを実行すると正しく出力されますが、ユニットテストを実行するとコンソールは検出されないため、カラーロギングは使用されません。次のプロパティが設定されていない場合でも、Spring Bootが常にコンソールがあると見なすように強制するには:
spring.output.ansi.console-available=true
spring.output.ansi.enabled=ALWAYS
とは異なり、これにより検出コードは実行されたままになります(Windowsを使用している場合は色が表示されません)が、テスト(IntelliJとMavenで実行中の両方)で色のログが記録されます。