web-dev-qa-db-ja.com

Intellij内でSpring Bootカラーコンソールロギングを動作させていますか?

Spring BootアプリケーションのIntellij Idea内でカラー出力を機能させる方法を誰かが考えましたか?

41
joshuawhite929

Mac、Intellij Idea 14、Spring Boot v1.2.2.RELEASEを使用して、設定する必要があるのは以下の設定のみです。

spring.output.ansi.enabled=ALWAYS

これをVMオプション(-Dspring.output.ansi.enabled=ALWAYS)。よく働く!

84
joshuawhite929

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
6
Kirill Ch
  • ansi ConsoleというEclipseプラグインをマーケットプレイスからインストールします。
  • spring.output.ansi.enabled = ALWAYS @ Application.properties/yml。
  • アプリケーションをスプリングブートとして実行すると、コンソールにカラーログが表示されます。
6
Jini

これらのプロパティをIntelliJ IDEAのapplication.propertiesに追加するだけです。

spring.main.banner-mode=off 
spring.output.ansi.enabled=ALWAYS
3

Gradleを使用して、任意の条件でログカラーのサポートを有効にする一般的な方法:

bootRun {
    def console = System.console() != null
    if (! console) { console = System.getenv()["TERM"].startsWith("xterm") }
    if (console) systemProperties 'spring.output.ansi.enabled': 'always'
}
1
gavenkoa

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で実行中の両方)で色のログが記録されます。

0
Matthew Buckett