web-dev-qa-db-fra.com

Afficher la sortie System.out.println avec une autre couleur

J'ai un gros projet à déboguer, et je me demandais s'il y avait un moyen de changer la méthode System.out.println dans la sortie de Eclipse

par exemple :

System.out.println("I want this to be red");
System.out.println("I want this to be blue");
System.out.println("I want this to be yellow");
System.out.println("I want this to be Magenta");

pour plus de lisibilité.

EDIT

avec sysout j'ai ce sysout

avec syserr j'ai ce syserr

9
Wassim AZIRAR

Dans Eclipse, l’approche la plus simple consisterait à utiliser System.err.println pour les lignes que vous souhaitez voir en rouge - je crois que c’est la méthode par défaut. (Vous pouvez le changer dans Préférences -> Exécuter/Déboguer -> Console).

Cette différence n'apparaîtra pas si vous utilisez realconsole bien sûr, mais je ne pense pas pensezla console Eclipse prend en charge les séquences d'échappement de couleur ANSI, etc.).

EDIT: Pour la console Windows, je m'attendrais à ce que les séquences d'échappement ANSI fonctionnent. Ce n'est pas énormémentportable, mais si ce n'est pas un problème, vous pouvez simplement créer une classe pour encapsuler correctement les séquences d'échappement, de sorte que vous puissiez appeler quelque chose comme:

ansiConsole.printRed("sample line in red");
ansiConsole.printBlue("sample line in blue");

(Je ferais probablement en sorte que ces méthodes reviennent à la couleur "actuelle" après chaque appel.)

EDIT: Comme indiqué dans les commentaires, la bibliothèque Jansi existe déjà, aussi bien l’utiliser. Il n'a pas les méthodes décrites ci-dessus, mais je suis sûr qu'il fera toujours ce que vous voulez ...

21
Jon Skeet

Veuillez vous reporter au code suivant. Consultez également ce lien pour connaître les codes de couleur ANSI. http://en.wikipedia.org/wiki/ANSI_escape_code

public class ColourConsoleDemo {
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("\033[0m BLACK");
        System.out.println("\033[31m RED");
        System.out.println("\033[32m GREEN");
        System.out.println("\033[33m YELLOW");
        System.out.println("\033[34m BLUE");
        System.out.println("\033[35m Magenta");
        System.out.println("\033[36m CYAN");
        System.out.println("\033[37m WHITE");
    }   
}
7
Sachin Gaykar

S'il vous plaît jeter un oeil à Jansi ( Jansi's Github )

Jansi est une petite bibliothèque Java qui vous permet d’utiliser des séquences d’échappement ANSI pour formater la sortie de votre console, qui fonctionne même sous Windows.

2
adatapost

Il semble que vous souhaitiez mettre en évidence la sortie de System.out.println() en utilisant différentes couleurs afin de vous aider à déboguer. Pourquoi ne pas rediriger toute la sortie de System.out vers un fichier situé dans le point d'entrée de votre programme:

FileOutputStream fis = new FileOutputStream(new File("log.txt"));
PrintStream out = new PrintStream(fis); 
System.setOut(out);

Ensuite, utilisez un outil de surveillance de fichier journal en temps réel, gratuit et portable, doté d’une fonction de surbrillance configurable et utilisant différentes couleurs, telles que BareTail , pour afficher ce fichier.

0
Ken Chan