Quelqu'un a-t-il compris comment faire fonctionner la sortie couleur dans Intellij Idea pour une application Spring Boot?
En utilisant un Mac, Intellij Idea 14 et Spring Boot v1.2.2.RELEASE, tout ce que vous avez à faire est de définir:
spring.output.ansi.enabled=ALWAYS
J'ai ajouté ceci comme une option VM (-Dspring.output.ansi.enabled=ALWAYS
). Fonctionne très bien!
Dans application.properties utilisez (par exemple) la ligne suivante:
logging.pattern.console= %d{yyyy-MMM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
Si vous souhaitez presque similaire à Spring Boot, vous pouvez utiliser un modèle comme celui-ci:
%date %highlight(%-5level) [%12.12thread] %cyan(%-40.40logger{40}) : %msg %n
En ajoutant simplement ces propriétés à application.properties pour IntelliJ IDEA:
spring.main.banner-mode=off
spring.output.ansi.enabled=ALWAYS
Moyen générique pour activer la prise en charge des couleurs de journalisation dans toutes les conditions avec Gradle:
bootRun {
def console = System.console() != null
if (! console) { console = System.getenv()["TERM"].startsWith("xterm") }
if (console) systemProperties 'spring.output.ansi.enabled': 'always'
}
Avec les versions plus récentes d'IntelliJ (2019) et de Spring Boot (2.0) lors de l'exécution d'une application Spring Boot dans la journalisation des couleurs IntelliJ est correctement sortie, cependant lors de l'exécution des tests unitaires aucune console n'est détectée et donc la journalisation des couleurs n'est pas utilisée. Pour forcer Spring Boot à toujours considérer qu'il y a une console même si elle n'en trouve pas, définissez la propriété suivante:
spring.output.ansi.console-available=true
Contrairement à spring.output.ansi.enabled=ALWAYS
cela laisse le code de détection en cours d'exécution (donc pas de couleur si vous êtes sur Windows) mais provoque l'enregistrement des couleurs dans les tests (à la fois dans IntelliJ et lors de l'exécution avec Maven).